From 217e3902d06285c25deb02affa7478a9b95a0753 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 28 Feb 2020 14:43:14 +0000 Subject: [PATCH 01/91] Pointing to v3.1 tag for ufs-s2s-model making readme consistant with user.yaml.default --- README.md | 4 ++-- sorc/checkout.sh | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d47d9b0c48..2ca5fa1ecb 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ cp user.yaml.default user.yaml Then, open and edit user.yaml: - EXPROOT: Place for experiment directory, make sure you have write access. -- FIX_SCRUB: YES if you would like to fix the path to ROTDIR(under COMROOT) and RUNDIR(under DATAROOT) - NO if you would like CROW to detect available disk space automatically. +- FIX_SCRUB: True if you would like to fix the path to ROTDIR(under COMROOT) and RUNDIR(under DATAROOT) + False if you would like CROW to detect available disk space automatically. - COMROOT: Place to generate ROTDIR for this experiment. - DATAROOT: Place for temporary storage for each job of this experiment. - cpu_project: cpu project that you are working with. diff --git a/sorc/checkout.sh b/sorc/checkout.sh index bd68b9dc1e..1e42d8822c 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -16,6 +16,7 @@ rm -f ${topdir}/checkout-fv3_coupled.log if [[ ! -d fv3_coupled.fd ]] ; then git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 cd fv3_coupled.fd + git checkout v3.1 git submodule update --init --recursive cd ${topdir} else From 1a444c52977334780f2c8e622c0d2a1a85f22fcf Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 4 Mar 2020 22:04:53 +0000 Subject: [PATCH 02/91] bug fix, POSTGRB2TBL undefined --- workflow/config/base.yaml | 1 + workflow/platforms/hera.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index eaed2f8771..afafeb1dbe 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -75,6 +75,7 @@ config_base: # Utilities needed in the scripts (mostly post) {doc.platform.config_base_extras} + export POSTGRB2TBL="{doc.places.HOMEgfs}/sorc/gfs_post.fd/parm/params_grib2_tbl_new" # Toggle to turn on/off GFS downstream processing. export DO_BUFRSND="{tools.YES_NO(doc.downstream.DO_BUFRSND)}" # Run GFS_POSTSND diff --git a/workflow/platforms/hera.yaml b/workflow/platforms/hera.yaml index 6f1159dc80..b5e8c8c3cf 100644 --- a/workflow/platforms/hera.yaml +++ b/workflow/platforms/hera.yaml @@ -36,7 +36,7 @@ platform: !Platform BASE_GIT: "/scratch1/NCEPDEV/global/glopara/git/" config_base_extras: !expand | - echo "place holder for NWPROD and associated utilities, now go through load_gfs_modules.sh" + echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" CHGRP_RSTPROD_COMMAND: "chgrp rstprod" From 82f148aa5a1f4ac2fdb0f96026e0c6ab9330c89d Mon Sep 17 00:00:00 2001 From: Henrique Alves Date: Wed, 4 Mar 2020 20:50:27 +0000 Subject: [PATCH 03/91] Squashing commits to wave2global --- jobs/JWAVE_INIT | 93 +++ jobs/JWAVE_POST_SBS | 117 ++++ jobs/JWAVE_PREP | 119 ++++ jobs/rocoto/prep.sh | 26 +- jobs/rocoto/waveinit.sh | 21 + jobs/rocoto/wavepostsbs.sh | 21 + jobs/rocoto/waveprep.sh | 21 + parm/config/config.wave | 131 +++++ parm/config/config.waveinit | 14 + parm/config/config.wavepostsbs | 12 + parm/config/config.waveprep | 29 + scripts/exwave_init.sh | 230 ++++++++ scripts/exwave_post_sbs.sh | 771 ++++++++++++++++++++++++ scripts/exwave_prep.sh | 1007 ++++++++++++++++++++++++++++++++ ush/hpssarch_gen.sh | 44 +- ush/wave_ens_bull.sh | 261 +++++++++ ush/wave_ens_stats.sh | 254 ++++++++ ush/wave_grib2.sh | 225 +++++++ ush/wave_grib2_cat.sh | 188 ++++++ ush/wave_grib2_sbs.sh | 222 +++++++ ush/wave_grid_interp.sh | 209 +++++++ ush/wave_grid_interp_sbs.sh | 217 +++++++ ush/wave_grid_moddef.sh | 136 +++++ ush/wave_outp_spec.sh | 260 +++++++++ ush/wave_prnc_cur.sh | 75 +++ ush/wave_prnc_ice.sh | 198 +++++++ ush/wave_tar.sh | 231 ++++++++ 27 files changed, 5118 insertions(+), 14 deletions(-) create mode 100755 jobs/JWAVE_INIT create mode 100755 jobs/JWAVE_POST_SBS create mode 100755 jobs/JWAVE_PREP create mode 100755 jobs/rocoto/waveinit.sh create mode 100755 jobs/rocoto/wavepostsbs.sh create mode 100755 jobs/rocoto/waveprep.sh create mode 100755 parm/config/config.wave create mode 100755 parm/config/config.waveinit create mode 100755 parm/config/config.wavepostsbs create mode 100755 parm/config/config.waveprep create mode 100755 scripts/exwave_init.sh create mode 100755 scripts/exwave_post_sbs.sh create mode 100755 scripts/exwave_prep.sh create mode 100755 ush/wave_ens_bull.sh create mode 100755 ush/wave_ens_stats.sh create mode 100755 ush/wave_grib2.sh create mode 100755 ush/wave_grib2_cat.sh create mode 100755 ush/wave_grib2_sbs.sh create mode 100755 ush/wave_grid_interp.sh create mode 100755 ush/wave_grid_interp_sbs.sh create mode 100755 ush/wave_grid_moddef.sh create mode 100755 ush/wave_outp_spec.sh create mode 100755 ush/wave_prnc_cur.sh create mode 100755 ush/wave_prnc_ice.sh create mode 100755 ush/wave_tar.sh diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT new file mode 100755 index 0000000000..8da1cef003 --- /dev/null +++ b/jobs/JWAVE_INIT @@ -0,0 +1,93 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveinit" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveinit +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + +export HOMEgfs=${HOMEgfs:-$NWROOT/${NET}.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Set HOMEwave to HOMEgfs +HOMEwave=${HOMEwave:-${HOMEgfs}} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +sh ./PDY + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Set resources to propagate NTASKS across cfp call +NTASKS=${NTASKS:-${npe_node_waveinit}} +export NTASKS=${NTASKS:?NTASKS required to be set} + +# Path to HOME Directory +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export EXECwave=${EXECwave:-$HOMEwave/exec} +export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEwave/parm/wave} +export USHwave=${USHwave:-$HOMEwave/ush} +export EXECcode=${EXECcode:-$CODEwave/exe} + +# Set COM Paths and GETGES environment +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT/rundata +fi + +export wavelog=${COMOUTwave}/wave.log + +# Set mpi serial command +export wavempexec=${wavempexec:-"mpirun -n"} +export wave_mpmd=${wave_mpmd:-"cfp"} + +# Execute the Script +$HOMEwave/scripts/exwave_init.sh + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS new file mode 100755 index 0000000000..49f21c67d2 --- /dev/null +++ b/jobs/JWAVE_POST_SBS @@ -0,0 +1,117 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave wavepostsbs" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wavepostsbs +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + +export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Set HOMEwave to HOMEgefs +HOMEwave=${HOMEwave:-${HOMEgfs}} + +# Set resources to propagate NTASKS across cfp call +NTASKS=${NTASKS:-${npe_node_waveprep}} +export NTASKS=${NTASKS:?NTASKS required to be set} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +export cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +sh ./PDY + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Path to HOME Directory +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export EXECwave=${EXECwave:-$HOMEwave/exec} +export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEwave/parm/wave} +export USHwave=${USHwave:-$HOMEwave/ush} +export EXECcode=${EXECcode:-$CODEwave/exe} + +# Set COM Paths and GETGES environment +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} + +export COMINice=${COMINice:-${COMROOTp2}/omb/prod} +export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + +mkdir -p $COMOUT/gridded +mkdir -p $COMOUT/station +mkdir -p $COMOUT/stats + +export wavelog=${COMOUTwave}/wave.log + +# Set mpi serial command +export wavempexec=${wavempexec:-"mpirun -n"} +export wave_mpmd=${wave_mpmd:-"cfp"} + +env | sort + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +membTAG='p' +if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi +export membTAG +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} + +export CFP_VERBOSE=1 + +# Execute the Script +$HOMEwave/scripts/exwave_post_sbs.sh +err=$? +if [ $err -ne 0 ]; then + msg="FATAL ERROR: ex-script of GWES_POST failed!" +else + msg="$job completed normally!" +fi +postmsg "$jlogfile" "$msg" + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP new file mode 100755 index 0000000000..6168d78f9c --- /dev/null +++ b/jobs/JWAVE_PREP @@ -0,0 +1,119 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveprep" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveprep +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + +export HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Set HOMEwave to HOMEgfs +HOMEwave=${HOMEwave:-${HOMEgfs}} + +# Set resources to propagate NTASKS across cfp call +NTASKS=${NTASKS:-${npe_node_waveprep}} +export NTASKS=${NTASKS:?NTASKS required to be set} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +sh ./PDY + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# CDO required for processing RTOFS currents +# export CDO=${COMROOTp2}/nwprod/rtofs_glo.v1.2.0/bin/cdo +export CDO=/gpfs/dell2/emc/verification/noscrub/Todd.Spindler/CDO/bin/cdo + +# Path to HOME Directory +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export EXECwave=${EXECwave:-$HOMEwave/exec} +export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEwave/parm/wave} +export USHwave=${USHwave:-$HOMEwave/ush} +export EXECcode=${EXECcode:-$CODEwave/exe} + +################################### +# Set COM Paths and GETGES environment +################################### +# Set COM Paths and GETGES environment +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $RUN_ENVIR = "nco" ]; then + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_WND=${COMIN_WAV_WND:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.$PDY +else + if [ ! -L $ROTDIR/${WAVECUR_DID}.${PDY} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/${WAVECUR_DID}.${PDY} $ROTDIR/${WAVECUR_DID}.${PDY} + $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} + fi + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} + export COMIN_WAV_ICE=${COMIN_OBS} + export COMIN_WAV_WND=${COMIN_OBS} + export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${PDY} +fi + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT +fi + +export wavelog=${COMOUTwave}/wave.log + +# Set mpi serial command +export wavempexec=${wavempexec:-"mpirun -n"} +export wave_mpmd=${wave_mpmd:-"cfp"} + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} + +# Execute the Script +$HOMEwave/scripts/exwave_prep.sh + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/jobs/rocoto/prep.sh b/jobs/rocoto/prep.sh index e506f70d25..61c55a7764 100755 --- a/jobs/rocoto/prep.sh +++ b/jobs/rocoto/prep.sh @@ -30,22 +30,22 @@ export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" ############################################################### # If ROTDIR_DUMP=YES, copy dump files to rotdir if [ $ROTDIR_DUMP = "YES" ]; then - $HOMEgfs/ush/getdump.sh $CDATE $CDUMP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc} $COMOUT - status=$? - [[ $status -ne 0 ]] && exit $status - -# Ensure previous cycle gdas dumps are available (used by cycle & downstream) - GDATE=$($NDATE -$assim_freq $CDATE) - gPDY=$(echo $GDATE | cut -c1-8) - gcyc=$(echo $GDATE | cut -c9-10) - GDUMP=gdas - gCOMOUT="$ROTDIR/$GDUMP.$gPDY/$gcyc" - if [ ! -s $gCOMOUT/$GDUMP.t${gcyc}z.updated.status.tm00.bufr_d ]; then + $HOMEgfs/ush/getdump.sh $CDATE $CDUMP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc} $COMOUT + status=$? + [[ $status -ne 0 ]] && exit $status + +# Ensure previous cycle gdas dumps are available (used by cycle & downstream) + GDATE=$($NDATE -$assim_freq $CDATE) + gPDY=$(echo $GDATE | cut -c1-8) + gcyc=$(echo $GDATE | cut -c9-10) + GDUMP=gdas + gCOMOUT="$ROTDIR/$GDUMP.$gPDY/$gcyc" + if [ ! -s $gCOMOUT/$GDUMP.t${gcyc}z.updated.status.tm00.bufr_d ]; then $HOMEgfs/ush/getdump.sh $GDATE $GDUMP $DMPDIR/${GDUMP}${DUMP_SUFFIX}.${gPDY}/${gcyc} $gCOMOUT status=$? [[ $status -ne 0 ]] && exit $status - fi - + fi + fi ############################################################### diff --git a/jobs/rocoto/waveinit.sh b/jobs/rocoto/waveinit.sh new file mode 100755 index 0000000000..ce7397c3e7 --- /dev/null +++ b/jobs/rocoto/waveinit.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE INIT ===============" +# Execute the JJOB +$HOMEgfs/jobs/JWAVE_INIT +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wavepostsbs.sh b/jobs/rocoto/wavepostsbs.sh new file mode 100755 index 0000000000..751bb9e8c4 --- /dev/null +++ b/jobs/rocoto/wavepostsbs.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE POST_SBS ===============" +# Execute the JJOB +$HOMEgfs/jobs/JWAVE_POST_SBS +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/waveprep.sh b/jobs/rocoto/waveprep.sh new file mode 100755 index 0000000000..faef5533d9 --- /dev/null +++ b/jobs/rocoto/waveprep.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE PREP ===============" +# Execute the JJOB +$HOMEgfs/jobs/JWAVE_PREP +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/parm/config/config.wave b/parm/config/config.wave new file mode 100755 index 0000000000..0307a73af5 --- /dev/null +++ b/parm/config/config.wave @@ -0,0 +1,131 @@ +#!/bin/ksh -x + +########## config.wave ########## +# Wave steps specific + +# Parameters that are common to all wave model steps + +# System and version +export wave_sys_ver=v1.0.0 + +# General runtime labels +# export WAV_MOD_ID=${WAV_MOD_ID:-wave} # generic modID=wave valid for GFSv16 and beyond +# COMPONENTwave stands for model component, in addition to NET/RUN for coupled systems +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + +# In GFS/GDAS, restart files are generated/read from gdas runs +# Can I use rCDUMP here???? +export COMPONENTRSTwave=${COMPONENTRSTwave:-gdaswave} + +# Grids for wave model +export waveGRD='glo_10m aoc_9km ant_9km' +export waveGRDN='1 2 3' # gridnumber for ww3_multi +export waveGRDG='10 20 30' # gridgroup for ww3_multi + +# ESMF input grid +export waveesmfGRD='glox_10m' # input grid + +# Grids for input fields +export WAVEICE_DID=sice +export WAVEICE_FID=icean_5m +export WAVECUR_DID=rtofs +export WAVECUR_FID=rtofs_5m +export WAVEWND_DID= +export WAVEWND_FID= + +# Grids for output fields +export waveuoutpGRD=points +export waveinterpGRD='glo_15mxt' # Grids that need to be interpolated from native + # in POST will generate grib unless gribOK not set +export wavesbsGRD='' # side-by-side grids generated as wave model runs, writes to com +export wavepostGRD='glo_10m aoc_9km ant_9km' # Native grids that will be post-processed (grib2) + +# CDATE +export CDATE=${PDY}${cyc} + +# The start time reflects the number of hindcast hours prior to the cycle initial time +if [ "$CDUMP" = "gdas" ] +then + export FHMAX_WAV=${FHMAX_WAV:-9} +fi +export WAVHINDH=${WAVHINDH:-0} +export FHMIN_WAV=${FHMIN_WAV:-0} +export FHOUT_WAV=${FHOUT_WAV:-3} +export FHMAX_WAV=${FHMAX_WAV:-384} +export FHMAX_HF_WAV=${FHMAX_HF_WAV:-120} +export FHOUT_HF_WAV=${FHOUT_HF_WAV:-1} + +# Output stride +export WAV_WND_HOUR_INC=1 # This value should match with the one used in + # the wind update script +# gridded and point output rate +export DTFLD_WAV=`expr $FHOUT_HF_WAV \* 3600` +export DTPNT_WAV=3600 +export FHINCP_WAV=`expr $DTPNT_WAV / 3600` + +# Selected output parameters (gridded) +export OUTPARS_WAV="WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR" +# GFS # export OUTPARS_WAV='WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR' + +# Options for point output (switch on/off boundary point output) +export DOIBP_WAV='NO' + +# Intake currents settings +export WAV_CUR_DT=${WAV_CUR_DT:-3} +export WAV_CUR_HF_DT=${WAV_CUR_HF_DT:-1} +export WAV_CUR_HF_FH=${WAV_CUR_HF_FH:-72} +export WAV_CUR_CDO_SMOOTH="NO" + +# Number of cycles to look back for restart files +export nback= + +# Restart file config +if [ "$CDUMP" = "gdas" ] +then + WAVNCYC=4 + WAVHCYC=6 + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-48} # RTOFS forecasts only out to 8 days +elif [ ${gfs_cyc} -ne 0 ] +then + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days + WAVHCYC=`expr 24 / ${gfs_cyc}` +else + WAVHCYC=0 + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days +fi +export FHMAX_WAV_CUR WAVHCYC WAVNCYC + +# Restart timing business +export RSTTYPE_WAV='T' # generate second tier of restart files +export DT_1_RST_WAV=10800 # time between restart files, set to DTRST=1 for a single restart file +export DT_2_RST_WAV=43200 # restart stride for checkpointing restart +export RSTIOFF_WAV=0 # first restart file offset relative to model start +# +# Set runmember to default value if not GEFS cpl run +# (for a GFS coupled run, RUNMEN would be unset, this should default to -1) +export RUNMEM=${RUNMEM:--1} +# Set wave model member tags if ensemble run +# -1: no suffix, deterministic; xxxNN: extract two last digits to make ofilename prefix=gwesNN +if [ $RUNMEM = -1 ]; then +# No suffix added to model ID in case of deterministic run + export waveMEMB= +else +# Extract member number only + export waveMEMB=`echo $RUNMEM | grep -o '..$'` +fi + +# Determine if wave component needs input and/or is coupled +export WW3ATMINP='CPL' +export WW3ICEINP='YES' +export WW3CURINP='YES' + +if [ "${WW3ICEINP}" = "YES" ]; then + export WAVICEFILE=${CDUMP}.t${cyc}z.seaice.5min.grib2 +fi + +# Determine if input is from perturbed ensemble (T) or single input file (F) for all members +export WW3ATMIENS='F' +export WW3ICEIENS='F' +export WW3CURIENS='F' + +echo "END: config.waveprep" diff --git a/parm/config/config.waveinit b/parm/config/config.waveinit new file mode 100755 index 0000000000..93960e5e25 --- /dev/null +++ b/parm/config/config.waveinit @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.waveinit ########## +# Wave steps specific + +echo "BEGIN: config.waveinit" + +# Get task specific resources +. $EXPDIR/config.resources waveinit + +# Step label +export sigMODE=${sigMODE:-init} + +echo "END: config.waveinit" diff --git a/parm/config/config.wavepostsbs b/parm/config/config.wavepostsbs new file mode 100755 index 0000000000..9bfe255f4b --- /dev/null +++ b/parm/config/config.wavepostsbs @@ -0,0 +1,12 @@ +#!/bin/ksh -x + +########## config.wavepostsbs ########## +# Wave steps specific + +echo "BEGIN: config.wavepostsbs" + +# Get task specific resources +. $EXPDIR/config.resources wavepostsbs + + +echo "END: config.wavepostsbs" diff --git a/parm/config/config.waveprep b/parm/config/config.waveprep new file mode 100755 index 0000000000..50a03969a0 --- /dev/null +++ b/parm/config/config.waveprep @@ -0,0 +1,29 @@ +#!/bin/ksh -x + +########## config.waveprep ########## +# Wave steps specific + +echo "BEGIN: config.waveprep" + +# Get task specific resources +. $EXPDIR/config.resources waveprep + +# Step label +export sigMODE=${sigMODE:-prep} + +export HOUR_INC=3 # This value should match with the one used in + # the wind update script +export GOFILETYPE=1 # GOFILETYPE=1 one gridded file per output step +export POFILETYPE=1 # POFILETYPE=1 one point file per output step + +# Parameters for ww3_multi.inp +# Unified output T or F +export FUNIPNT='T' +# Unified output server type (see ww3_multi.inp in WW3 repo) +export PNTSRV='1' +# Flag for dedicated output process for unified points +export FPNTPROC='T' +# Flag for grids sharing dedicated output processes +export FGRDPROC='F' + +echo "END: config.waveprep" diff --git a/scripts/exwave_init.sh b/scripts/exwave_init.sh new file mode 100755 index 0000000000..5a5ed2d669 --- /dev/null +++ b/scripts/exwave_init.sh @@ -0,0 +1,230 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exwave_init.sh +# Script description: Creates model definition files for WW3 +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-04-20 +# Abstract: This script is the init config for the global multi_grid wave model. +# It creates model definition files with all configurations of spatial +# and spectral grids, as well as physics parameters and time steps. +# +# Script history log: +# 2019-05-06 J-Henrique Alves First Version. +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + msg="HAS BEGUN on `hostname`" + postmsg "$jlogfile" "$msg" + msg="Starting MWW3 INIT CONFIG SCRIPT for $COMPONENTwave" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' ********************************' + echo ' *** MWW3 INIT CONFIG SCRIPT ***' + echo ' ********************************' + echo ' Initial configuration script' + echo " Model identifier : $COMPONENTwave" + echo ' ' + echo "Starting at : `date`" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + fi + + set +x + echo ' ' + echo " Script set to run with $NTASKS tasks " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + set +x + echo 'Preparing input files :' + echo '-----------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files + + nmoddef=0 + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# Eliminate duplicate grids + array=($WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD) + grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` + + for grdID in ${grdALL} + do + if [ -f "$COMIN/rundata/${COMPONENTwave}.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + cp $COMIN/rundata/${COMPONENTwave}.mod_def.${grdID} mod_def.$grdID + + else + set +x + echo " Mod def file for $grdID not found in ${COMIN}/rundata. Setting up to generate ..." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + if [ -f $FIXwave/ww3_grid.inp.$grdID ] + then + cp $FIXwave/ww3_grid.inp.$grdID ww3_grid.inp.$grdID + fi + + if [ -f ww3_grid.inp.$grdID ] + then + set +x + echo ' ' + echo " ww3_grid.inp.$grdID copied ($FIXwave/ww3_grid.inp.$grdID)." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO INP FILE FOR MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*********************************************************** ' + echo '*** FATAL ERROR : NO INP FILE FOR MODEL DEFINITION FILE *** ' + echo '*********************************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "$COMPONENTwave init config $date $cycle : ww3_grid.inp.$grdID missing." >> $wavelog + err=2;export err;${errchk} + fi + + [[ ! -d $COMOUT/rundata ]] && mkdir -m 775 -p $COMOUT/rundata + echo "$USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + + nmoddef=`expr $nmoddef + 1` + + fi + done + +# 1.a.1 Execute parallel or serialpoe + + if [ "$nmoddef" -gt '0' ] + then + + set +x + echo ' ' + echo " Generating $nmoddef mod def files" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Set number of processes for mpmd + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + +# 1.a.3 Execute the serial or parallel cmdfile + + set +x + echo ' ' + echo " Executing the mod_def command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$NTASKS" -gt '1' ] + then + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + exit=$? + else + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** POE FAILURE DURING RAW DATA COPYING ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + + fi + +# 1.a.3 File check + + for grdID in ${grdALL} + do + if [ -f ${COMOUT}/rundata/${COMPONENTwave}.mod_def.$grdID ] + then + set +x + echo ' ' + echo " mod_def.$grdID succesfully created/copied " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '********************************************** ' + echo '*** FATAL ERROR : NO MODEL DEFINITION FILE *** ' + echo '********************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + sed "s/^/$grdID.out : /g" $grdID.out + [[ "$LOUD" = YES ]] && set -x + echo "$COMPONENTwave prep $date $cycle : mod_def.$grdID missing." >> $wavelog + err=3;export err;${errchk} + fi + done + +# --------------------------------------------------------------------------- # +# 2. Ending + + set +x + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 Init Config ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + +# End of MWW3 init config script ------------------------------------------- # diff --git a/scripts/exwave_post_sbs.sh b/scripts/exwave_post_sbs.sh new file mode 100755 index 0000000000..9def345e3c --- /dev/null +++ b/scripts/exwave_post_sbs.sh @@ -0,0 +1,771 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exwave_post_sbs.sh +# Script description: Creates output products from binary WW3 data +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-12-06 +# Abstract: This script is the postprocessor for the wave component in GFS. +# This version runs side-by-side with the GFS fcst step. +# It executes several scripts forpreparing and creating output data +# as follows: +# +# wave_grib2_sbs.sh : generates GRIB2 files. +# wave_outp_spec.sh : generates spectral data for output locations. +# wave_outp_bull.sh : generates bulletins for output locations. +# wave_grid_interp_ush.sh : interpolates data from new grids to old grids +# wave_tar.sh : tars the spectral and bulletin multiple files +# +# Script history log: +# 2019-12-06 J-Henrique Alves First Version adapted from HTolman post.sh 2007 +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (Bash) Shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + + msg="Starting WAVE POSTPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' *********************************' + echo ' *** WAVE POSTPROCESSOR SCRIPT ***' + echo ' *********************************' + echo ' ' + echo "Starting at : `date`" + echo '-------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + exit $err + fi + +# 0.c Defining model grids + + waveuoutpGRD=${waveuoutpGRD:?buoyNotSet} + +# 0.c.1 Grids + + export waveGRD=${waveGRD?Var waveGRD Not Set} + export wavesbsGRD=${wavesbsGRD?Var wavesbsGRD Not Set} + +# 0.c.3 extended global grid and rtma transfer grid + export waveinterpGRD=${waveinterpGRD?Var wavepostGRD Not Set} + export wavepostGRD=${wavepostGRD?Var wavepostGRD Not Set} + +# 0.c.4 Define a temporary directory for storing ascii point output files +# and flush it + + export STA_DIR=$DATA/station_ascii_files + if [ -d $STA_DIR ] + then + rm -rf ${STA_DIR} + fi + mkdir -p ${STA_DIR} + mkdir -p ${STA_DIR}/spec + mkdir -p ${STA_DIR}/ibp + mkdir -p ${STA_DIR}/bull + mkdir -p ${STA_DIR}/cbull + + set +x + echo ' ' + echo 'Grid information :' + echo '-------------------' + echo " Native wave grids : $waveGRD" + echo " Side-by-side grids : $wavesbsGRD" + echo " Interpolated grids : $waveinterpGRD" + echo " Post-process grids : $wavepostGRD" + echo " Output points : $waveuoutpGRD" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + fieldOK='yes' + pointOK='yes' + gribOK='yes' + grintOK='yes' + specOK='yes' + bullOK='yes' + + exit_code=0 + + set +x + echo ' ' + echo 'Preparing input files :' + echo '-----------------------' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files and output files (set up using poe) + +# 1.a.1 Set up the parallel command tasks + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + + [[ "$LOUD" = YES ]] && set -x + +# Copy model definition files + for grdID in $waveGRD $wavesbsGRD $wavepostGRD $waveinterpGRD $waveuoutpGRD + do + if [ -f "$COMIN/rundata/${COMPONENTwave}.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + + cp -f $COMIN/rundata/${COMPONENTwave}.mod_def.${grdID} mod_def.$grdID + iloop=`expr $iloop + 1` + + fi + + done + + for grdID in $waveGRD $wavesbsGRD $wavepostGRD $waveinterpGRD $waveuoutpGRD + do + if [ ! -f mod_def.$grdID ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo " FATAL ERROR : NO MOD_DEF FILE mod_def.$grdID " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $grdID $date $cycle : mod_def file missing." >> $wavelog + postmsg "$jlogfile" "FATAL ERROR : NO MOD_DEF file mod_def.$grdID" + fieldOK='no' + err=2; export err;${errchk} + exit $err + gribOK='no' + else + set +x + echo "File mod_def.$grdID found. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + $FSYNC mod_def.$grdID + fi + done + +# 1.c Output locations file + + rm -f buoy.loc + + if [ -f $FIXwave/wave_${NET}.buoys ] + then + cp -f $FIXwave/wave_${NET}.buoys buoy.loc.temp +# Reverse grep to exclude IBP points + sed -n '/^\$.*/!p' buoy.loc.temp | grep -v IBP > buoy.loc +# Grep to include IBP points + sed -n '/^\$.*/!p' buoy.loc.temp | grep IBP > buoy.ibp + rm -f buoy.loc.temp + fi + + if [ -s buoy.loc ] && [ -s buoy.ibp ] + then + set +x + echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '************************************* ' + echo ' FATAL ERROR : NO BUOY LOCATION FILE ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$AV_MOD_ID post $date $cycle : buoy location file missing." >> $wavelog + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOCATION FILE" + err=3; export err;${errchk} + exit $err + pointOK='no' + specOK='no' + bullOK='no' + fi + +# 1.d Input template files + + if [ "$grintOK" = 'yes' ] + then + for intGRD in $waveinterpGRD + do + if [ -f $FIXwave/${intGRD}_interp.inp.tmpl ] + then + cp -f $FIXwave/${intGRD}_interp.inp.tmpl ${intGRD}_interp.inp.tmpl + fi + + if [ -f ${intGRD}_interp.inp.tmpl ] + then + set +x + echo " ${intGRD}_interp.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + $FSYNC ${intGRD}_interp.inp.tmpl + else + set +x + echo ' ' + echo '*********************************************** ' + echo '*** ERROR : NO TEMPLATE FOR GRINT INPUT FILE *** ' + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : GRINT template file missing." >> $wavelog + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRINT INPUT FILE" + exit_code=1 + grintOK='no' + fi + done + fi + + if [ "$gribOK" = 'yes' ] + then + for grbGRD in $waveinterpGRD $wavepostGRD + do + if [ -f $FIXwave/ww3_grib2.${grbGRD}.inp.tmpl ] + then + cp -f $FIXwave/ww3_grib2.${grbGRD}.inp.tmpl ww3_grib2.${grbGRD}.inp.tmpl + fi + + if [ -f ww3_grib2.${grbGRD}.inp.tmpl ] + then + set +x + echo " ww3_grib2.${grbGRD}.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + $FSYNC ww3_grib2.inp.tmpl + else + set +x + echo ' ' + echo '*********************************************** ' + echo "*** ERROR : NO TEMPLATE FOR ${grbGRD} GRIB INPUT FILE *** " + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : GRIB2 template file missing." >> $wavelog + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRIB2 INPUT FILE" + exit_code=2 + gribOK='no' + fi + done + fi + + if [ -f $FIXwave/ww3_outp_spec.inp.tmpl ] + then + cp -f $FIXwave/ww3_outp_spec.inp.tmpl ww3_outp_spec.inp.tmpl + fi + + if [ -f ww3_outp_spec.inp.tmpl ] + then + set +x + echo " ww3_outp_spec.inp.tmpl copied. Syncing to all grids ..." + [[ "$LOUD" = YES ]] && set -x + $FSYNC ww3_outp_spec.inp.tmpl + else + set +x + echo ' ' + echo '*********************************************** ' + echo '*** ERROR : NO TEMPLATE FOR SPEC INPUT FILE *** ' + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : ww3_outp_spec.inp.tmpl file missing." >> $wavelog + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR SPEC INPUT FILE" + exit_code=3 + specOK='no' + bullOK='no' + fi + + if [ -f $FIXwave/ww3_outp_bull.inp.tmpl ] + then + cp -f $FIXwave/ww3_outp_bull.inp.tmpl ww3_outp_bull.inp.tmpl + fi + + if [ -f ww3_outp_bull.inp.tmpl ] + then + set +x + echo " ww3_outp_bull.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + $FSYNC ww3_outp_bull.inp.tmpl + else + set +x + echo ' ' + echo '*************************************************** ' + echo '*** ERROR : NO TEMPLATE FOR BULLETIN INPUT FILE *** ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : bulletin template file missing." >> $wavelog + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR BULLETIN INPUT FILE" + exit_code=4 + bullOK='no' + fi + +# 1.e Getting buoy information for points + + if [ "$specOK" = 'yes' ] || [ "$bullOK" = 'yes' ] + then + ymdh=`$NDATE -${WAVHINDH} $CDATE` + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + dtspec=3600. # default time step (not used here) + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/1/g" \ + -e "s/ITYPE/0/g" \ + -e "s/FORMAT/F/g" \ + ww3_outp_spec.inp.tmpl > ww3_outp.inp + + ln -s mod_def.$waveuoutpGRD mod_def.ww3 + fhr=$FHMIN_WAV + YMD=$(echo $CDATE | cut -c1-8) + HMS="$(echo $CDATE | cut -c9-10)0000" + tloop=0 + tloopmax=600 + tsleep=10 + while [ ${tloop} -le ${tloopmax} ] + do + if [ -f $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ] + then + ln -s $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ./out_pnt.${waveuoutpGRD} + break + else + sleep ${tsleep} + tloop=$(($tloop + $tsleep)) + fi + done + + rm -f buoy_tmp.loc buoy_log.ww3 ww3_oup.inp + ln -fs ./out_pnt.${waveuoutpGRD} ./out_pnt.ww3 + ln -fs ./mod_def.${waveuoutpGRD} ./mod_def.ww3 + $EXECcode/ww3_outp > buoy_lst.loc 2>&1 + err=$? + + if [ "$err" != '0' ] && [ ! -f buoy_log.ww3 ] + then + pgm=wave_post + msg="ABNORMAL EXIT: ERROR IN ww3_outp" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp *** ' + echo '******************************************** ' + echo ' ' + cat buoy_tmp.loc + echo "$WAV_MOD_TAG post $date $cycle : buoy log file failed to be created." >> $wavelog + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=4;export err;${errchk} + specOK='no' + bullOK='no' + exit $err + fi + +# Create new buoy_log.ww3 excluding all IBP files + cat buoy.loc | awk '{print $3}' | sed 's/'\''//g' > ibp_tags + grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp + rm -f buoy_log.dat + mv buoy_log.tmp buoy_log.dat + + grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc + sed '$d' buoy_tmp1.loc > buoy_tmp2.loc + buoys=`awk '{ print $1 }' buoy_tmp2.loc` + Nb=`wc buoy_tmp2.loc | awk '{ print $1 }'` + rm -f buoy_tmp1.loc buoy_tmp2.loc + + if [ -s buoy_log.dat ] + then + set +x + echo 'Buoy log file created. Syncing to all nodes ...' + $FSYNC buoy_log.dat + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '**************************************** ' + echo '*** ERROR : NO BUOY LOG FILE CREATED *** ' + echo '**************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : buoy log file missing." >> $wavelog + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" + err=5;export err;${errchk} + specOK='no' + bullOK='no' + OspecOK='no' + ObullOK='no' + fi + +# Create new buoy_log.ww3 including all IBP files + ibspecOK='yes' + cat buoy.ibp | awk '{print $3}' | sed 's/'\''//g' > ibp_tags + grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp + rm -f buoy_log.ibp + mv buoy_log.tmp buoy_log.ibp + + grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc + sed '$d' buoy_tmp1.loc > buoy_tmp2.loc + ibpoints=`awk '{ print $1 }' buoy_tmp2.loc` + Nibp=`wc buoy_tmp2.loc | awk '{ print $1 }'` + rm -f buoy_tmp1.loc buoy_tmp2.loc + + if [ -s buoy_log.ibp ] + then + set +x + echo 'IBP log file created. Syncing to all nodes ...' + $FSYNC buoy_log.ibp + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '**************************************** ' + echo '*** ERROR : NO IBP LOG FILE CREATED *** ' + echo '**************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : ibp log file missing." >> $wavelog + postmsg "$jlogfile" "FATAL ERROR : NO IBP LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" + err=6;export err;${errchk} + ibspecOK='no' + fi + + fi + +# 1.f Data summary + + set +x + echo ' ' + echo " Input files read and processed at : `date`" + echo ' ' + echo ' Data summary : ' + echo ' ---------------------------------------------' + echo " Sufficient data for GRID interpolation : $grintOK" + echo " Sufficient data for GRIB files : $gribOK" + echo " Sufficient data for spectral files : $specOK ($Nb points)" + echo " Sufficient data for bulletins : $bullOK ($Nb points)" + echo " Sufficient data for Input Boundary Points : $ibspecOK ($Nibp points)" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 2. Make consolidated grib2 file for side-by-side grids and interpolate +# onto extended grids +# +# 2.a Command file set-up + + set +x + echo ' Making command file for sbs grib2 and GRID Interpolation ' + [[ "$LOUD" = YES ]] && set -x + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 1.a.2 Loop over forecast time to generate post files +# When executed side-by-side, serial mode (cfp when run after the fcst step) + fhr=$FHMIN_WAV + fhrp=$fhr + fhrg=$fhr + iwaitmax=120 # Maximum loop cycles for waiting until wave component output file is ready (fails after max) + while [ $fhr -le $FHMAX_WAV ]; do + + ymdh=`$NDATE $fhr $CDATE` + YMD=$(echo $ymdh | cut -c1-8) + HMS="$(echo $ymdh | cut -c9-10)0000" + YMDHMS=${YMD}${HMS} + FH3=$(printf %03i $fhr) + + fcmdnow=cmdfile.${FH3} + fcmdigrd=icmdfile.${FH3} + fcmdpnt=pcmdfile.${FH3} + fcmdibp=ibpcmdfile.${FH3} + rm -f ${fcmdnow} ${fcmdigrd} ${fcmdpnt} ${fcmdibp} + touch ${fcmdnow} ${fcmdigrd} ${fcmdpnt} ${fcmdibp} +# echo "mkdir output_$YMDHMS" >> ${fcmdnow} + mkdir output_$YMDHMS +# echo "cd output_$YMDHMS" >> ${fcmdnow} + cd output_$YMDHMS +# Create instances of directories for spec and gridded output + export SPECDATA=${DATA}/output_$YMDHMS + export BULLDATA=${DATA}/output_$YMDHMS + export GRIBDATA=${DATA}/output_$YMDHMS + export GRDIDATA=${DATA}/output_$YMDHMS + ln -fs $DATA/mod_def.${waveuoutpGRD} mod_def.ww3 + + if [ $fhr = $fhrp ] + then + iwait=0 + pfile=$COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} + while [ ! -s ${pfile} ]; do sleep 10; ((iwait++)) && ((iwait==$iwaitmax)) && break ; echo $iwait; done + if [ $iwait -eq $iwaitmax ]; then + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $waveuoutpGRD $date $cycle : point output missing." >> $wavelog + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD + err=6; export err;${errchk} + exit $err + fi + ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} + + if [ "$specOK" = 'yes' ] + then + export dtspec=3600. + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec > spec_$buoy.out 2>&1" >> ${fcmdnow} + done + fi + + if [ "$ibspecOK" = 'yes' ] && [ "$DOIBP_WAV" = "YES" ] + then + export dtspec=3600. + for buoy in $ibpoints + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh ibp > ibp_$buoy.out 2>&1" >> ${fcmdnow} + done + fi + + if [ "$bullOK" = 'yes' ] + then + export dtspec=3600. + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull > bull_$buoy.out 2>&1" >> ${fcmdnow} + done + fi + + fi + + if [ $fhr = $fhrg ] + then + for wavGRD in ${waveGRD} ; do + gfile=$COMIN/rundata/${WAV_MOD_TAG}.out_grd.${wavGRD}.${YMD}.${HMS} + while [ ! -s ${gfile} ]; do sleep 10; done + if [ $iwait -eq $iwaitmax ]; then + echo '*************************************************** ' + echo " FATAL ERROR : NO RAW FIELD OUTPUT FILE out_grd.$grdID " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $grdID $date $cycle : field output missing." >> $wavelog + postmsg "$jlogfile" "NON-FATAL ERROR : NO RAW FIELD OUTPUT FILE out_grd.$grdID" + fieldOK='no' + err=7; export err;${errchk} + exit $err + fi + ln -s ${gfile} ./out_grd.${wavGRD} + done + + if [ "$grintOK" = 'yes' ] + then + nigrd=1 + for grdID in $waveinterpGRD + do + case $grdID in + glo_15mxt) ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ;; + glo_30mxt) ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ;; + esac + echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + if [ "$gribOK" = 'yes' ] + then + gribFL=\'`echo ${OUTPARS_WAV}`\' + case $grdID in + glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=255 ;; + glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=255 ;; + esac + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + fi + echo "${fcmdigrd}.${nigrd}" >> ${fcmdnow} + chmod 744 ${fcmdigrd}.${nigrd} + nigrd=$((nigrd+1)) + done + fi + + if [ "$gribOK" = 'yes' ] + then + for grdID in ${wavepostGRD} # First concatenate grib files for sbs grids + do + gribFL=\'`echo ${OUTPARS_WAV}`\' + case $grdID in + aoc_9km) GRDNAME='arctic' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; + ant_9km) GRDNAME='antarc' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; + glo_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + glo_15m) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + ao_20m) GRDNAME='arctic' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; + so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; + glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + esac + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} + done + fi + + fi + + wavenproc=`wc -l ${fcmdnow} | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the copy command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + ${wavempexec} ${wavenproc} ${wave_mpmd} ${fcmdnow} + exit=$? + else + chmod 744 ${fcmdnow} + ./${fcmdnow} + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** CMDFILE FAILED ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=8; export err;${errchk} + exit $err + fi + + rm -f out_grd.* # Remove large binary grid output files + + cd $DATA + + FHINCP=$(( DTPNT_WAV / 3600 )) + FHINCG=$(( DTFLD_WAV / 3600 )) + if [ $fhr = $fhrg ] + then + if [ $FHMAX_HF_WAV -gt 0 ] && [ $FHOUT_HF_WAV -gt 0 ] && [ $fhr -lt $FHMAX_HF_WAV ]; then + FHINCG=$FHOUT_HF_WAV + else + FHINCG=$FHOUT_WAV + fi + fhrg=$((fhr+FHINCG)) + fi + if [ $fhr = $fhrp ] + then + fhrp=$((fhr+FHINCP)) + fi + echo $fhrg $fhrp + fhr=$([ $fhrg -le $fhrp ] && echo "$fhrg" || echo "$fhrp") # reference fhr is the least between grid and point stride + done + +# --------------------------------------------------------------------------- # +# 3. Compress point output data into tar files + +# 3.a Set up cmdfile + + rm -f cmdtarfile + touch cmdtarfile + chmod 744 cmdtarfile + + set +x + echo ' ' + echo ' Making command file for taring all point output files.' + + [[ "$LOUD" = YES ]] && set -x + +# 6.b Spectral data files + + if [ "$specOK" = 'yes' ] + then + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + fi + + wavenproc=`wc -l cmdtarfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the copy command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdtarfile + exit=$? + else + chmod 744 cmdtarfile + ./cmdtarfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** CMDFILE FAILED ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=8; export err;${errchk} + exit $err + fi + +# --------------------------------------------------------------------------- # +# 7. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo '-----------' + echo ' ' + echo ' *** End of MWW3 postprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$exit_code" -ne '0' ] + then + msg="ABNORMAL EXIT: Problem in MWW3 POST" + postmsg "$jlogfile" "$msg" + echo $msg + err=16; export err;${errchk} + exit $err + else + echo " Side-by-Side Wave Post Completed Normally " + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + exit 0 + fi + +# End of MWW3 prostprocessor script ---------------------------------------- # diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh new file mode 100755 index 0000000000..1cd88fd41a --- /dev/null +++ b/scripts/exwave_prep.sh @@ -0,0 +1,1007 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exwave_prep.sh +# Script description: Creates output products from binary WW3 data +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-03-01 +# Abstract: This is the preprocessor for the wave component in GFS. +# It executes several scripts for preparing and creating input data +# as follows: +# +# wave_prnc_ice.sh : preprocess ice fields. # +# wave_prnc_wnd.sh : preprocess wind fields (uncoupled run, not active) # +# wave_prnc_cur.sh : preprocess current fields. # +# wave_g2ges.sh : find and copy wind grib2 files. # +# # +# Remarks : # +# - For non-fatal errors output is witten to the wave.log file. # +# # +# Update record : # +# # +# - Origination: 01-Mar-2007 # +# # +# Update log # +# Mar2007 HTolman - Added NCO note on resources on mist/dew # +# Apr2007 HTolman - Renaming mod_def files in $FIX_wave. # +# Mar2011 AChawla - Migrating to a vertical structure # +# Nov2012 JHAlves - Transitioning to WCOSS # +# Apr2019 JHAlves - Transitioning to GEFS workflow # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# # +# WAV_MOD_ID and WAV_MOD_TAG replace modID. WAV_MOD_TAG # +# is used for ensemble-specific I/O. For deterministic # +# WAV_MOD_ID=WAV_MOD_TAG # +# # +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + mkdir outtmp + + msg="HAS BEGUN on `hostname`" + postmsg "$jlogfile" "$msg" + msg="Starting MWW3 PREPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' ********************************' + echo ' *** MWW3 PREPROCESSOR SCRIPT ***' + echo ' ********************************' + echo ' PREP for wave component of NCEP coupled system' + echo " Wave component identifier : $WAV_MOD_TAG " + echo ' ' + echo "Starting at : `date`" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# export MP_PGMMODEL=mpmd +# export MP_CMDFILE=./cmdfile + + if [ "$INDRUN" = 'no' ] + then + FHMAX_WAV=${FHMAX_WAV:-3} + else + FHMAX_WAV=${FHMAX_WAV:-384} + fi + +# 0.b Date and time stuff + +# Beginning time for outpupt may differ from SDATE if DOIAU=YES + export date=$PDY + export YMDH=${PDY}${cyc} +# Roll back $IAU_FHROT hours of DOIAU=YES + IAU_FHROT=3 + if [ "$DOIAU" = "YES" ] + then + WAVHINDH=$(( WAVHINDH + IAU_FHROT )) + fi +# Set time stamps for model start and output +# For special case when IAU is on but this is an initial half cycle + if [ $IAU_OFFSET = 0 ]; then + ymdh_beg=$YMDH + else + ymdh_beg=`$NDATE -$WAVHINDH $YMDH` + fi + time_beg="`echo $ymdh_beg | cut -c1-8` `echo $ymdh_beg | cut -c9-10`0000" + ymdh_end=`$NDATE $FHMAX_WAV $YMDH` + time_end="`echo $ymdh_end | cut -c1-8` `echo $ymdh_end | cut -c9-10`0000" + ymdh_beg_out=$YMDH + time_beg_out="`echo $ymdh_beg_out | cut -c1-8` `echo $ymdh_beg_out | cut -c9-10`0000" + +# Restart file times (already has IAU_FHROT in WAVHINDH) + RSTOFFSET=$(( ${WAVHCYC} - ${WAVHINDH} )) +# Update restart time is added offset relative to model start + RSTOFFSET=$(( ${RSTOFFSET} + ${RSTIOFF_WAV} )) + ymdh_rst_ini=`$NDATE ${RSTOFFSET} $YMDH` + RST2OFFSET=$(( DT_2_RST_WAV / 3600 )) + ymdh_rst2_ini=`$NDATE ${RST2OFFSET} $ymdh_rst_ini` # DT2 relative to first-first-cycle restart file +# First restart file for cycling + time_rst_ini="`echo $ymdh_rst_ini | cut -c1-8` `echo $ymdh_rst_ini | cut -c9-10`0000" + if [ ${DT_1_RST_WAV} = 1 ]; then + time_rst1_end=${time_rst_ini} + else + RST1OFFSET=$(( DT_1_RST_WAV / 3600 )) + ymdh_rst1_end=`$NDATE $RST1OFFSET $ymdh_rst_ini` + time_rst1_end="`echo $ymdh_rst1_end | cut -c1-8` `echo $ymdh_rst1_end | cut -c9-10`0000" + fi +# Second restart file for checkpointing + time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" + time_rst2_end=$time_end +# Condition for gdas run or any other run when checkpoint stamp is > ymdh_end + if [ $ymdh_rst2_ini -ge $ymdh_end ]; then + ymdh_rst2_ini=`$NDATE 3 $ymdh_end` + time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" + time_rst2_end=$time_rst2_ini + fi + + set +x + echo ' ' + echo 'Times in wave model format :' + echo '----------------------------' + echo " date / cycle : $date $cycle" + echo " starting time : $time_beg" + echo " ending time : $time_end" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: Requires NTASKS to be set " + err=1; export err;${errchk} + fi + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + set +x + echo 'Preparing input files :' + echo '-----------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files + + rm -f cmdfile + touch cmdfile + + grdINP='' + if [ "${WW3ATMINP}" = 'YES' ]; then grdINP="${grdINP} $WAVEWND_FID" ; fi + if [ "${WW3ICEINP}" = 'YES' ]; then grdINP="${grdINP} $WAVEICE_FID" ; fi + if [ "${WW3CURINP}" = 'YES' ]; then grdINP="${grdINP} $WAVECUR_FID" ; fi + + ifile=1 + + for grdID in $grdINP $waveGRD + do + if [ -f "$COMIN/rundata/${COMPONENTwave}.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + cp $COMIN/rundata/${COMPONENTwave}.mod_def.${grdID} mod_def.$grdID + + else + msg="FATAL ERROR: NO MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*********************************************************** ' + echo '*** FATAL ERROR : NOT FOUND WAVE MODEL DEFINITION FILE *** ' + echo '*********************************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : ${COMPONENTwave}.mod_def.${grdID} missing." >> $wavelog + err=2;export err;${errchk} + fi + done + +# 1.b Netcdf Preprocessor template files + + for grdID in $grdINP + do + + case $grdID in + $WAVECUR_FID ) + type='cur' + ;; + $WAVEWND_FID ) + type='wind' + ;; + $WAVEICE_FID ) + type='ice' + ;; + * ) + echo 'Input type not yet implemented' + err=3; export err;${errchk} + ;; + esac + + if [ -f $FIXwave/ww3_prnc.${type}.$grdID.inp.tmpl ] + then + cp $FIXwave/ww3_prnc.${type}.$grdID.inp.tmpl . + fi + + if [ -f ww3_prnc.${type}.$grdID.inp.tmpl ] + then + set +x + echo ' ' + echo " ww3_prnc.${type}.$grdID.inp.tmpl copied ($FIXwave)." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO FILE $file" + ./postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************** ' + echo '*** FATAL ERROR : NO TEMPLATE FILE *** ' + echo '************************************** ' + echo " ww3_prnc.${type}.$grdID.inp.tmpl" + echo ' ' + echo $msg + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : ww3_prnc.${type}.$grdID.tmpl missing." >> $wavelog + err=4;export err;${errchk} + fi + done + +# --------------------------------------------------------------------------- # +# ICEC processing + + if [ "${WW3ICEINP}" = 'YES' ]; then + +# --------------------------------------------------------------------------- # +# 2. Ice pre - processing + +# 2.a Check if ice input is perturbed (number of inputs equal to number of wave +# ensemble members + if [ "${RUNMEM}" = "-1" ] || [ "${WW3ICEIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + $USHwave/wave_prnc_ice.sh > wave_prnc_ice.out + ERR=$? + + if [ -d ice ] + then + postmsg "$jlogfile" "FATAL ERROR ice field not generated." + set +x + echo ' ' + echo ' FATAL ERROR: ice field not generated ' + echo ' ' + sed "s/^/ice.out : /g" ice.out + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=5;export err;${errchk} + else + mv -f ice.out $DATA/outtmp + rm -f ww3_prep.$WAVEICE_FID.tmpl mod_def.$WAVEICE_FID + set +x + echo ' ' + echo ' Ice field unpacking successful.' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + else + echo ' ' + echo " Ice input is not perturbed, single ice file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + fi + else + echo ' ' + echo ' No input ice file generated, this run did not request pre-processed ice data ' + echo ' ' + fi + +# --------------------------------------------------------------------------- # +# WIND processing (not functional, TBD for uncoupled cases) + + if [ "${WW3ATMINP}" = 'YES' ]; then + +# --------------------------------------------------------------------------- # +# 3. Wind pre-processing + + if [ "${RUNMEM}" = "-1" ] || [ "${WW3ATMIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 3.a Gather and pre-process grib2 files + ymdh=$ymdh_beg + + while [ "$ymdh" -le "$ymdh_end" ] + do + echo "$USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + ymdh=`$NDATE $WAV_WND_HOUR_INC $ymdh` + done + +# 3.b Execute the serial or parallel cmdfile + +# Set number of processes for mpmd + cat cmdfile + + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the copy command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + exit=$? + else + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** CMDFILE FAILED IN WIND GENERATION ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + +# 3.c Check for errors + + set +x + echo ' ' + echo ' Checking for errors.' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# We will go on if the number of errors in files is less +# than err_max + + [[ "$LOUD" = YES ]] && set -x + err_max=1 + + + ymdh=$ymdh_beg + nr_err=0 + + set +x + echo ' Sources of grib2 files :' + [[ "$LOUD" = YES ]] && set -x + while [ "$ymdh" -le "$ymdh_end" ] + do + if [ -d grb_${ymdh} ] + then + set +x + echo ' ' + echo " File for $ymdh : error in wave_g2ges.sh" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" " File for $ymdh : error in wave_g2ges.sh" + nr_err=`expr $nr_err + 1` + rm -f gwnd.$ymdh + else + grbfile=`grep 'File for' grb_${ymdh}.out` + if [ -z "$grbfile" ] + then + set +x + echo ' ' + echo " File for $ymdh : cannot identify source" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + nr_err=`expr $nr_err + 1` + rm -f gwnd.$ymdh + else + if [ ! -f gwnd.$ymdh ] + then + set +x + echo ' ' + echo " File for $ymdh : file not found" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + nr_err=`expr $nr_err + 1` + else + set +x + echo ' ' + echo " $grbfile" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + mv -f grb_${ymdh}.out $DATA/outtmp + fi + fi + fi + ymdh=`$NDATE $WAV_WND_HOUR_INC $ymdh` + done + + if [ -f grb_*.out ] + then + set +x + echo ' ' + echo '**********************************' + echo '*** ERROR OUTPUT wave_g2ges.sh ***' + echo '**********************************' + echo ' Possibly in multiple calls' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : error in wind grib2 files." >> $wavelog + set +x + for file in grb_*.out + do + echo ' ' + sed "s/^/$file : /g" $file + done + echo ' ' + [[ "$LOUD" = YES ]] && set -x + mv -f grb_*.out $DATA/outtmp + postmsg "$jlogfile" "NON-FATAL ERROR in wave_g2ges.sh, possibly in multiple calls." + fi + + if [ "$nr_err" -gt "$err_max" ] + then + msg="ABNORMAL EXIT: TOO MANY MISSING WIND INPUT GRB2 FILES" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR(S) IN WIND FILES *** ' + echo '********************************************* ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : fatal error in grib2 wind files." >> $wavelog + err=6;export err;${errchk} + fi + + rm -f cmdfile + +# 3.d Getwind data into single file + + set +x + echo ' ' + echo ' Concatenate extracted wind fields ...' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + files=`ls gwnd.* 2> /dev/null` + + if [ -z "$files" ] + then + msg="ABNORMAL EXIT: NO gwnd.* FILES FOUND" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : CANNOT FIND WIND FILES *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : no wind files found." >> $wavelog + err=7;export err;${errchk} + fi + + rm -f gfs.wind + + for file in $files + do + cat $file >> gfs.wind + rm -f $file + done + +# 3.e Run ww3_prnc + +# Convert gfs wind to netcdf + $WGRIB2 gfs.wind -netcdf gfs.nc + + for grdID in $WAVEWND_FID $curvID + do + + set +x + echo ' ' + echo " Running wind fields through preprocessor for grid $grdID" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + sed -e "s/HDRFL/T/g" ww3_prnc.wind.$grdID.tmpl > ww3_prnc.inp + ln -sf mod_def.$grdID mod_def.ww3 + + set +x + echo "Executing $EXECcode/ww3_prnc" + [[ "$LOUD" = YES ]] && set -x + + $EXECcode/ww3_prnc > prnc.out + err=$? + + if [ "$err" != '0' ] + then + msg="ABNORMAL EXIT: ERROR IN waveprnc" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*************************************** ' + echo '*** FATAL ERROR : ERROR IN waveprnc *** ' + echo '*************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $grdID $date $cycle : error in waveprnc." >> $wavelog + err=8;export err;${errchk} + fi + + if [ ! -f wind.ww3 ] + then + msg="ABNORMAL EXIT: FILE wind.ww3 MISSING" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + cat waveprep.out + echo ' ' + echo '****************************************' + echo '*** FATAL ERROR : wind.ww3 NOT FOUND ***' + echo '****************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $grdID $date $cycle : wind.ww3 missing." >> $wavelog + err=9;export err;${errchk} + fi + + rm -f mod_def.ww3 + rm -f ww3_prep.inp + + mv wind.ww3 wind.$grdID + mv times.WND times.$grdID + +# 3.f Check to make sure wind files are properly incremented + + first_pass='yes' + windOK='yes' + while read line + do + date1=`echo $line | cut -d ' ' -f 1` + date2=`echo $line | cut -d ' ' -f 2` + ymdh="$date1`echo $date2 | cut -c1-2`" + if [ "$first_pass" = 'no' ] + then + hr_inc=`$NHOUR $ymdh $ymdh_prev` + if [ "${hr_inc}" -gt "${WAV_WND_HOUR_INC}" ] + then + set +x + echo "Incorrect wind forcing increment at $ymdh" + [[ "$LOUD" = YES ]] && set -x + windOK='no' + fi + fi + ymdh_prev=$ymdh + first_pass='no' + done < times.$grdID + + if [ "$windOK" = 'no' ] + then + set +x + echo ' ' + echo '************************************************' + echo '*** ERROR : WIND DATA INCREMENT INCORRECT !! ***' + echo '************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $grdID $date $cycle : error in wind increment." >> $wavelog + err=10;export err;${errchk} + fi + + done + + rm -f gfs.wind + rm -f mod_def.ww3 + rm -f ww3_prnc.inp + else + echo ' ' + echo " Wind input is not perturbed, single wnd file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + + fi + + else + + echo ' ' + echo ' Atmospheric inputs not generated, this run did not request pre-processed winds ' + echo ' ' + + fi + +#------------------------------------------------------------------- +# CURR processing (not functional, TBD for uncoupled and GFSv16 cases) + + if [ "${WW3CURINP}" = 'YES' ]; then + +#------------------------------------------------------------------- +# 4. Process current fields +# 4.a Get into single file + if [ "${RUNMEM}" = "-1" ] || [ "${WW3CURIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + set +x + echo ' ' + echo ' Concatenate binary current fields ...' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Prepare files for cfp process + rm -f cmdfile + touch cmdfile + chmod 744 cmfile + + ymdh_rtofs=${PDY}00 # RTOFS runs once daily + ymdh_end=`$NDATE ${FHMAX_WAV_CUR} ${ymdh_rtofs}` + NDATE_DT=${WAV_CUR_HF_DT} + FLGHF='T' + + while [ "$ymdh_rtofs" -le "$ymdh_end" ] + do +# Timing has to be made relative to the single 00z RTOFS cycle for that PDY + fhr_rtofs=`${NHOUR} ${ymdh_rtofs} ${PDY}00` + fext='f' + + if [ ${fhr_rtofs} -lt 0 ] + then +# Data from nowcast phase + fhr_rtofs=`expr 48 + ${fhr_rtofs}` + fext='n' + fi + + fhr_rtofs=`printf "%03d\n" ${fhr_rtofs}` + + curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fhr_rtofs}_1hrly_prog.nc + curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fhr_rtofs}_3hrly_prog.nc + + if [ -s ${curfile1h} ] && [ "${FLGHF}" = "T" ] ; then + curfile=${curfile1h} + elif [ -s ${curfile3h} ]; then + curfile=${curfile3h} + FLGHF='F' + else + echo ' ' + set $setoff + echo ' ' + echo '************************************** ' + echo "*** FATAL ERROR: NO CUR FILE $curfile *** " + echo '************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "FATAL ERROR - NO CURRENT FILE (RTOFS)" + err=11;export err;${errchk} + exit 0 + echo ' ' + fi + + echo "$USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + if [ $fhr_rtofs -ge ${WAV_CUR_HF_FH} ] ; then + NDATE_DT=${WAV_CUR_DT} + fi + ymdh_rtofs=`$NDATE $NDATE_DT $ymdh_rtofs` + done + +# Set number of processes for mpmd + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the copy command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ $wavenproc -gt '1' ] + then + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + exit=$? + else + chmod 744 ./cmdfile + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** CMDFILE FAILED IN CUR GENERATION ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + + files=`ls ${WAVECUR_FID}.* 2> /dev/null` + + if [ -z "$files" ] + then + msg="ABNORMAL EXIT: NO ${WAVECUR_FID}.* FILES FOUND" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : CANNOT FIND CURR FILES *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG prep $date $cycle : no current files found." >> $wavelog + err=11;export err;${errchk} + fi + + rm -f cur.${WAVECUR_FID} + + for file in $files + do + cat $file >> cur.${WAVECUR_FID} + rm -f $file + done + + cp -f cur.${WAVECUR_FID} ${COMOUT}/rundata/${COMPONENTwave}.${WAVECUR_FID}.$cycle.cur + + else + echo ' ' + echo " Current input is not perturbed, single cur file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + fi + + else + + echo ' ' + echo ' Current inputs not generated, this run did not request pre-processed currents ' + echo ' ' + + fi + +# --------------------------------------------------------------------------- # +# 5. Create ww3_multi.inp + +# 5.a ww3_multi template + + if [ -f $FIXwave/ww3_multi.${NET}.inp.tmpl ] + then + cp $FIXwave/ww3_multi.${NET}.inp.tmpl ww3_multi.inp.tmpl + fi + + if [ ! -f ww3_multi.inp.tmpl ] + then + msg="ABNORMAL EXIT: NO TEMPLATE FOR INPUT FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : NO TEMPLATE FOR INPUT FILE *** ' + echo '************************************************ ' + echo ' ' + echo "${WAV_MOD_TAG} fcst $date $cycle : ww3_multi file missing." >> $wavelog + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=12;export err;${errchk} + fi + +# 5.b Buoy location file + + if [ -f $FIXwave/wave_${NET}.buoys ] + then + cp $FIXwave/wave_${NET}.buoys buoy.loc + fi + + if [ -f buoy.loc ] + then + set +x + echo " buoy.loc copied ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo " buoy.loc not found. **** WARNING **** " + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" " FATAL ERROR : buoy.loc ($FIXwave/wave_${NET}.buoys) NOT FOUND" + touch buoy.loc + echo "$WAV_MOD_TAG fcst $date $cycle : no buoy locations file ($FIXwave/wave_${NET}.buoys)." >> $wavelog + err=13;export err;${errchk} + fi + +# Initialize inp file parameters + NFGRIDS=0 + NMGRIDS=0 + CPLILINE='$' + ICELINE='$' + ICEFLAG='no' + CURRLINE='$' + CURRFLAG='no' + WINDLINE='$' + WINDFLAG='no' + UNIPOINTS='$' + +# Check for required inputs and coupling options + if [ $waveuoutpGRD ] + then + UNIPOINTS="'$waveuoutpGRD'" + fi + +# Check if waveesmfGRD is set + if [ ${waveesmfGRD} ] + then + NFGRIDS=`expr $NFGRIDS + 1` + fi + + case ${WW3ATMINP} in + 'YES' ) + NFGRIDS=`expr $NFGRIDS + 1` + WINDLINE=" '$WAVEWND_FID' F F T F F F F" + WINDFLAG="$WAVEWND_FID" + ;; + 'CPL' ) + WINDFLAG="CPL:${waveesmfGRD}" + WNDIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F F T F F F F" + ;; + esac + + case ${WW3ICEINP} in + 'YES' ) + NFGRIDS=`expr $NFGRIDS + 1` + ICELINE=" '$WAVEICE_FID' F F F T F F F" + ICEFLAG="$WAVEICE_FID" + ;; + 'CPL' ) + ICEFLAG="CPL:${waveesmfGRD}" + ICEIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + ;; + esac + + case ${WW3CURINP} in + 'YES' ) + NFGRIDS=`expr $NFGRIDS + 1` + CURRLINE=" '$WAVECUR_FID' F T F F F F F" + CURRFLAG="$WAVECUR_FID" + ;; + 'CPL' ) + CURRFLAG="CPL:${waveesmfGRD}" + CURIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEIFLAG} F F F" + ;; + esac + + unset agrid + agrid= + gline= + GRDN=0 +# grdGRP=1 # Single group for now + for grid in ${waveGRD} + do + GRDN=`expr ${GRDN} + 1` + agrid=( ${agrid[*]} ${grid} ) + NMGRIDS=`expr $NMGRIDS + 1` + gridN=`echo $waveGRDN | awk -v i=$GRDN '{print $i}'` + gridG=`echo $waveGRDG | awk -v i=$GRDN '{print $i}'` + gline="${gline}'${grid}' 'no' 'CURRFLAG' 'WINDFLAG' 'ICEFLAG' 'no' 'no' 'no' ${gridN} ${gridG} 0.00 1.00 F\n" + done + gline="${gline}\$" + echo $gline + + sed -e "s/NFGRIDS/$NFGRIDS/g" \ + -e "s/NMGRIDS/${NMGRIDS}/g" \ + -e "s/FUNIPNT/${FUNIPNT}/g" \ + -e "s/PNTSRV/${PNTSRV}/g" \ + -e "s/FPNTPROC/${FPNTPROC}/g" \ + -e "s/FGRDPROC/${FGRDPROC}/g" \ + -e "s/OUTPARS/${OUTPARS_WAV}/g" \ + -e "s/CPLILINE/${CPLILINE}/g" \ + -e "s/UNIPOINTS/${UNIPOINTS}/g" \ + -e "s/GRIDLINE/${gline}/g" \ + -e "s/ICELINE/$ICELINE/g" \ + -e "s/CURRLINE/$CURRLINE/g" \ + -e "s/WINDLINE/$WINDLINE/g" \ + -e "s/ICEFLAG/$ICEFLAG/g" \ + -e "s/CURRFLAG/$CURRFLAG/g" \ + -e "s/WINDFLAG/$WINDFLAG/g" \ + -e "s/RUN_BEG/$time_beg/g" \ + -e "s/RUN_END/$time_end/g" \ + -e "s/OUT_BEG/$time_beg_out/g" \ + -e "s/OUT_END/$time_end/g" \ + -e "s/DTFLD/ $DTFLD_WAV/g" \ + -e "s/GOFILETYPE/ $GOFILETYPE/g" \ + -e "s/POFILETYPE/ $POFILETYPE/g" \ + -e "s/FIELDS/$FIELDS/g" \ + -e "s/DTPNT/ $DTPNT_WAV/g" \ + -e "/BUOY_FILE/r buoy.loc" \ + -e "s/BUOY_FILE/DUMMY/g" \ + -e "s/RST_BEG/$time_rst_ini/g" \ + -e "s/RSTTYPE/$RSTTYPE_WAV/g" \ + -e "s/RST_2_BEG/$time_rst2_ini/g" \ + -e "s/DTRST/$DT_1_RST_WAV/g" \ + -e "s/DT_2_RST/$DT_2_RST_WAV/g" \ + -e "s/RST_END/$time_rst1_end/g" \ + -e "s/RST_2_END/$time_rst2_end/g" \ + ww3_multi.inp.tmpl | \ + sed -n "/DUMMY/!p" > ww3_multi.inp + + rm -f ww3_multi.inp.tmpl buoy.loc + + if [ -f ww3_multi.inp ] + then + echo " Copying file ww3_multi.${WAV_MOD_TAG}.inp to $COMOUT " + cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.$cycle.inp + else + echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.$cycle.inp NOT CREATED, ABORTING" + err=13;export err;${errchk} + fi + +# 6. Copy rmp grid remapping pre-processed coefficients + + if ls $FIXwave/rmp_src_to_dst_conserv_* 2> /dev/null + then + for file in $(ls $FIXwave/rmp_src_to_dst_conserv_*) ; do + cp -f $file ${COMOUT}/rundata + done + else + msg="NO rmp precomputed nc files found, is this OK???" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : NO PRECOMPUTED RMP FILES FOUND *** ' + echo '************************************************ ' + echo ' ' + echo "${WAV_MOD_TAG} prep $date $cycle : rmp*.nc not found." >> $wavelog + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=13;export err;${errchk} + fi + + +# --------------------------------------------------------------------------- # +# 6. Output to /com + + if [ "$SENDCOM" = 'YES' ] + then + + if [ "${WW3ATMINP}" = 'YES' ]; then + + for grdID in $WAVEWND_FID $curvID + do + set +x + echo ' ' + echo " Saving wind.$grdID as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.wind" + echo " Saving times.$grdID file as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.$grdID.wind.times" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + cp wind.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.wind + cp times.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.$grdID.wind.times + done + fi + +# if [ "${WW3CURINP}" = 'YES' ]; then +# +# for grdID in $WAVECUR_FID +# do +# set +x +# echo ' ' +# echo " Saving cur.$grdID as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.cur" +# echo ' ' +# [[ "$LOUD" = YES ]] && set -x +# cp cur.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.cur +# done +# fi + fi + + rm -f wind.* + rm -f $WAVEICE_FID.* + rm -f times.* + +# --------------------------------------------------------------------------- # +# 7. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 preprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + +# End of MWW3 preprocessor script ------------------------------------------- # diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 9814e032af..1686c2e61d 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -146,6 +146,27 @@ fi echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile5.nc " >>gfs_restarta.txt echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile6.nc " >>gfs_restarta.txt + #.................. + if [ $DO_WAVE = "YES" ]; then + + rm -rf gfswave.txt + touch gfswave.txt + rm -rf gfswave_restart.txt + touch gfswave_restart.txt + + dirpath="gfswave.${PDY}/${cyc}/" + dirname="./${dirpath}" + + head="gfswave.t${cyc}z." + + #........................... + echo "${dirname}gridded/${head}* " >>gfswave.txt + echo "${dirname}station/${head}* " >>gfswave.txt + + echo "${dirname}restart/* " >>gfswave_restart.txt + + fi + #----------------------------------------------------- fi ##end of gfs #----------------------------------------------------- @@ -224,6 +245,28 @@ if [ $type = "gdas" ]; then #.................. echo "${dirname}RESTART " >>gdas_restartb.txt + #.................. + if [ $DO_WAVE = "YES" ]; then + + rm -rf gdaswave.txt + touch gdaswave.txt + rm -rf gdaswave_restart.txt + touch gdaswave_restart.txt + + dirpath="gdaswave.${PDY}/${cyc}/" + dirname="./${dirpath}" + + head="gdaswave.t${cyc}z." + + #........................... + echo "${dirname}gridded/${head}* " >>gdaswave.txt + echo "${dirname}station/${head}* " >>gdaswave.txt + + echo "${dirname}restart/* " >>gdaswave_restart.txt + + fi + + #----------------------------------------------------- fi ##end of gdas #----------------------------------------------------- @@ -325,6 +368,5 @@ if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then fi ##end of enkfgdas or enkfgfs #----------------------------------------------------- - exit 0 diff --git a/ush/wave_ens_bull.sh b/ush/wave_ens_bull.sh new file mode 100755 index 0000000000..0aac9d4fa2 --- /dev/null +++ b/ush/wave_ens_bull.sh @@ -0,0 +1,261 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_ens_bull.sh +# Script description: Create buoy bulletin for NCEP Global Wave Ensemble +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2014-01-16 +# Abstract: Creates bulletin for NCEP Global Wave Ensemble using grib2 data. +# Values at buoy locations are extracted using wgrib2 bi-linear +# interpolation (-new_grid) and requires IPOLATES lib. +# +# Script history log: +# 2019-05-06 J-Henrique Alves First Version. +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# +# 0. Preparations +# 0.a Basic modes of operation +# + seton='-xa' + setoff='+xa' + set $seton + + echo -e '\n ******************************************' + echo ' *** WAVE ENSEMBLE BUOY BULLETIN SCRIPT ***' + echo -e ' ******************************************\n' + echo " Starting at : `date`" +# +# 0.b External dependencies and paths +# + export wgrib2=$utilexec/wgrib2 + scripname=wave_ens_bull.sh +# +# 0.b Date and time stuff +# + export YMD=$PDY + export YMDH=${PDY}${cyc} + export tcycz=t${cyc}z +# +# 0.c Buoy location parameters (from stdin) +# + blon=$1 + blat=$2 + bnom=$3 + bfil=$4 +# +# 0.d Plumbing +# + BULLdir=${bnom}_bull + rm -rf $BULLdir + mkdir -p $BULLdir + err=$? + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************************* ' + echo " FATAL ERROR: NOT ABLE TO CREATE TEMP DIR ${BULLdir} " + echo '******************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + ../postmsg "$jlogfile" "FATAL ERROR in ${scripname}: Could not create temp directory" + exit 1 + fi + + cd ${BULLdir} +# +# 0.e Output file names +# + bfil="${COMPONENTwave}.${bnom}.bull" + tfil="${COMPONENTwave}.${bnom}.ts" +# +# 1. Prepare input data +# +# 1.a Interpolate from gribfile at model res to high resolution at buoy location +# (wgrib2 + IPOLATES -> bi-linear) +# + $utilexec/wgrib2 ../gribfile -new_grid_winds earth \ + -new_grid_interpolation bilinear -new_grid latlon \ + ${blon}:2:.01 ${blat}:2:.01 grbint.${bnom} \ + 1> buoy_interp.out 2>&1 +# + if ! [ -f grbint.${bnom} ] + then + set +x + echo ' ' + echo '******************************************************* ' + echo " FATAL ERROR: FAILED TO CREATE FILE grbint.${bnom} " + echo '******************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + ../postmsg "$jlogfile" "FATAL ERROR creating grbint.${bnom} in ${scripname}" + exit 2 + fi +# +# 1.b Extract parameters at buoy locations from higher res interpolated file +# + valpdy=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match mean -vt \ + | sed 's/[,=]/ /g' | awk '{print $NF}' | cut -c1-8`) + vald=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match mean -vt \ + | sed 's/[,=]/ /g' | awk '{print $NF}' | cut -c7-8`) + valt=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match mean -vt \ + | sed 's/[,=]/ /g' | awk '{print $NF}' | cut -c9-10`) + hsb=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match mean -lon \ + ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + hspb=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match spread \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + tpb=(`$utilexec/wgrib2 grbint.${bnom} -match PERPW -match mean -lon \ + ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + tspb=(`$utilexec/wgrib2 grbint.${bnom} -match PERPW -match spread \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + ub=(`$utilexec/wgrib2 grbint.${bnom} -match WIND -match mean -lon \ + ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + usb=(`$utilexec/wgrib2 grbint.${bnom} -match WIND -match spread -lon \ + ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p1b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >0.6' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p2b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >1' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p3b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >2' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p4b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >5.5' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p5b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >7' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) + p6b=(`$utilexec/wgrib2 grbint.${bnom} -match HTSGW -match 'prob >9' \ + -lon ${blon} ${blat} | sed 's/[,=]/ /g' | awk '{print $NF}'`) +# +# Length of parameter vectors +# + tlen=`echo ${hsb[@]} | wc -w` +# +# Check for error in reading parameters from interpolated file +# + if [ ! $vald ] || [ ! valt ] || [ ! hsb ] || [ ! hspb ] || [ ! tpb ] || \ + [ ! tspb ] || [ ! ub ] || [ ! usb ] || [ ! p1b ] || [ ! p2b ] || \ + [ ! p3b ] || [ ! p4b ] || [ ! p5b ] || [ ! p6b ] + then + set +x + echo ' ' + echo '******************************************************* ' + echo " FATAL ERROR: FAILED TO READ PARAMS FROM grbint${bnom} " + echo '******************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + ../postmsg "$jlogfile" "FATAL ERROR reading parameters from grbint.${bnom} in ${scripname}" + exit 3 + fi +# +# Warning if any parameter has UNDEF value +# + UNDF=9.999e+20 + UNDFCHK=`echo ${hsb[@]} ${hspb[@]} ${tpb[@]} ${tspb[@]} ${ub[@]} ${usb[@]} \ + ${p1b[@]} ${p2b[@]} ${p3b[@]} ${p4b[@]} ${p5b[@]} ${p6b[@]}` + if [ `echo $UNDFCHK | grep $UNDF | cut -c1` ] + then + set +x + echo ' ' + echo '******************************************************* ' + echo " WARNING: PARAMETER IS UNDEFINED IN grbint.${bnom} " + echo '******************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + ../postmsg "$jlogfile" "WARNING: parameter is UNDEFINED in grbint.${bnom} in ${scripname}" + fi +# +# 2. Generate bulletin +# + printf "\n Location : "$bnom" ("$blat"N "$blon"W)\n" > $bfil + printf " Model : NCEP Global Wave Ensemble System (${COMPONENTwave})\n" >> $bfil + printf " Cycle : "$PDY" "$cycle" UTC\n" >> $bfil + printf "\n+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+\n" >> $bfil + printf "| day | Hs avg | Hs spr | Tp avg | Tp spr | U10avg | U10spr | P(Hs>) | P(Hs>) | P(Hs>) | P(Hs>) | P(Hs>) | P(Hs>) |\n" >> $bfil + printf "| hour | (m) | (m) | (s) | (m) | (m/s) | (m/s) | 1.00m | 2.00m | 3.00m | 5.50m | 7.00m | 9.00m |\n" >> $bfil + printf "+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+\n" >> $bfil + + for (( it=1; it<=$tlen; it++ )) + do + tdum=`expr ${valt[$it-1]} / 1` + ddum=`expr ${vald[$it-1]} / 1` + printf '| %2.2i %2.2i' $ddum $tdum >> $bfil + printf ' | %5.2f ' \ + ${hsb[$it-1]:0:4} \ + ${hspb[$it-1]:0:4} \ + ${tpb[$it-1]:0:4} \ + ${tspb[$it-1]:0:4} \ + ${ub[$it-1]:0:4} \ + ${usb[$it-1]:0:4} \ + ${p1b[$it-1]:0:4} \ + ${p2b[$it-1]:0:4} \ + ${p3b[$it-1]:0:4} \ + ${p4b[$it-1]:0:4} \ + ${p5b[$it-1]:0:4} \ + ${p6b[$it-1]:0:4} >> $bfil + printf ' |\n' >> $bfil + done + + printf "+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+\n" >> $bfil + printf " Hs : Significant wave height\n" >> $bfil + printf " Tp : Peak period\n" >> $bfil + printf " U10 : Wind speed at a height of 10m above the surface\n" >> $bfil + printf " avg : Average of ensemble members\n" >> $bfil + printf " spr : Spread (standard deviation) of ensemble members\n" >> $bfil + printf " P(Hs >): Probability of Hs exceeding given threshold\n" >> $bfil + printf " NOAA/NWS/NCEP Marine Modeling and Analysis Branch, $PDY" >> $bfil +# +# 2.b Create time series output +# + printf " date hour Hs avg Hs spr Tp avg Tp spr U10avg U10spr \n" >> $tfil + printf " (m) (m) (s) (s) (m/s) (m/s) \n" >> $tfil + printf " ----------------------------------------------------- \n" >> $tfil + for (( it=1; it<=$tlen; it++ )) + do + tdum=`expr ${valt[$it-1]} / 1` + printf ' %8.8i %2.2i' ${valpdy[$it-1]} $tdum >> $tfil + printf ' %5.2f ' \ + ${hsb[$it-1]:0:4} \ + ${hspb[$it-1]:0:4} \ + ${tpb[$it-1]:0:4} \ + ${tspb[$it-1]:0:4} \ + ${ub[$it-1]:0:4} \ + ${usb[$it-1]:0:4} >> $tfil + printf '\n' >> $tfil + done +# +# 2.c Check for errors in creating bulletin file +# + if [ -f ${bfil} ] && [ -f ${tfil} ] + then + echo -e "\n ${COMPONENTwave} bulletin and ts-file created for location ${bnom}.\n" + else + set +x + echo ' ' + echo '******************************************************* ' + echo '*** FATAL ERROR: BULL/TS FILES AT ${bnom} NOT FOUND ***' + echo '******************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + ../postmsg "$jlogfile" "FATAL ERROR : BULL/TS FILES NOT FOUND" + exit 4 + fi +# +# 3. Copy and Cleanup +# + mv -f ${bfil} ../. + mv -f ${tfil} ../. + rm -rf ${bnom}_bull + +# End of buoy bulletin script diff --git a/ush/wave_ens_stats.sh b/ush/wave_ens_stats.sh new file mode 100755 index 0000000000..c167c608a4 --- /dev/null +++ b/ush/wave_ens_stats.sh @@ -0,0 +1,254 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_ens_stats.sh +# Script description: Create statists (means etc) from wave ensemble data +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2014-01-16 +# Abstract: Creates bulletin for NCEP Global Wave Ensemble using grib2 data. +# Values at buoy locations are extracted using wgrib2 bi-linear +# interpolation (-new_grid) and requires IPOLATES lib. +# +# Script history log: +# 2014-01-16 J-Henrique Alves First Version. +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ + + ++ +# 0. Preparations +# 0.a Basic modes of operation +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ + + ++ +# + seton='-xa' + setoff='+xa' + set $seton + + para=$1 + prepar=`echo $para | rev | cut -c2- | rev` #Part prefix (assumes 1 digit index) + paridx=`echo $para | rev | cut -c-1` #Part index (assumes 1 digit index) + +# Number of grib records + ngrib=$2 + +# Number of ensemble members + nmembn=`echo ${membn} | wc -w` + +# Forecast range + fhour=$3 + + mkdir -p tmp_${para} + cd tmp_${para} + +# 0.b Set general parameter settings + + scale=' ' + case $prepar in + HTSG) ascale=(0.60 1.00 2.00 3.00 4.00 5.50 7.00 9.00) ; + scale=${ascale[@]} + npart=0 ; + nip='hs' ; + nnip=${nip} ; + parcode='10 0 3' ;; + PERP) ascale=(5.0 7.0 9.0 11.0 13.0 15.0 17.0 19.0) ; + scale=${ascale[@]} + npart=0 ; + nip='tp' ; + nnip=${nip} ; + parcode='10 0 11' ;; + DIRP) ascale='0' ; + scale=${ascale[@]} + npart=0 ; + nip='pdir' ; + nnip=${nip} ; + parcode='10 0 10' ;; + WIN) ascale=(3.60 5.65 8.74 11.31 14.39 17.48 21.07 24.67) ; + scale=${ascale[@]} + npart=0 ; + nip='wnd' ; + nnip=${nip} ; + parcode='0 2 1' ;; + WDI) ascale='0' ; + scale=${ascale[@]} + npart=0 ; + nip='wnddir' ; + nnip=${nip} ; + parcode='0 2 0' ;; + WVHG) ascale=(0.60 1.00 2.00 3.00 4.00 5.50 7.00 9.00) ; + scale=${ascale[@]} + npart=0 ; + nip='wshs' ; + nnip=${nip} ; + parcode='10 0 5' ;; + WVPE) ascale=(5.0 7.0 9.0 11.0 13.0 15.0 17.0 19.0) ; + scale=${ascale[@]} + npart=0 ; + nip='wstp' ; + nnip=${nip} ; + parcode='10 0 6' ;; + WVDI) ascale='0' ; + scale=${ascale[@]} + npart=0 ; + nip='wsdir' ; + nnip=${nip} ; + parcode='10 0 4' ;; + SWELL) ascale=(0.60 1.00 2.00 3.00 4.00 5.50 7.00 9.00) ; + scale=${ascale[@]} + npart=1 ; + nip='hswell' ; + nnip="${nip}"$paridx ; + parcode='10 0 8' ;; + SWPER) ascale=(5.0 7.0 9.0 11.0 13.0 15.0 17.0 19.0) ; + scale=${ascale[@]} + npart=1 ; + nip='tswell' ; + nnip="${nip}"$paridx ; + parcode='10 0 9' ;; + *) ascale=${tsscale[@]} ; scale=${ascale[$plev]} ; parcode=' ' ;; + esac + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ + + ++ +# 1. Compute mean, spread and probability of exceedence +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ + + ++ +# +# set $seton + + rm -f mean.t${cyc}z.grib2 spread.t${cyc}z.grib2 probab.t${cyc}z.grib2 + + nmemb=${nmembn} + nmembm1=`expr ${nmemb} - 1` +# +# 1.a Create list of combined ensemble member numbers (starting from 00 = NCEP control run) +# + memb=`seq -w 0 ${nmembm1}` +# + valtime=`$NDATE ${fhour} ${YMDH}` + + mkdir -p ${valtime} + cd ${valtime} + + if [ $fhour -eq 0 ] ; then + ihr='anl' + hhh='000' + elif [ $fhour -lt 10 ] ; then + ihr=${fhour}' hour' + hhh='00'$fhour + elif [ $fhour -lt 100 ] ; then + ihr=${fhour}' hour' + hhh='0'$fhour + elif [ $fhour -ge 100 ] ; then + ihr=${fhour}' hour' + hhh=$fhour + fi +# + rm -f gwes_stats.inp data_* +# +# 1.b Loop through members + nme=0 +# while [ ${nme} -lt ${nmemb} ] + for im in $membn + do + + infile=../../${para}_${im}.t${cyc}z.grib2 + if [ "${im}" = "00" ] + then + +# 1.b.1 Generate input file for gwes_stats + echo $YMDH $hhh $nnip $parcode > gwes_stats.inp + #echo $YMDH $ngrib $dtgh $nnip $parcode > gwes_stats.inp + echo ${nmemb} >> gwes_stats.inp + echo $memb >> gwes_stats.inp + echo ${scale[@]} | wc -w >> gwes_stats.inp + echo ${scale[@]} >> gwes_stats.inp + +# 1.b.2 Get grid dimension for input grib file and pass to fortran code + nlola=`$WGRIB2 ${infile} -grid -d 1 | sed 's/(/ /g' | sed 's/)/ /g' | sed '2!d' | awk '{print $3,$5}'` + rdlon=`$WGRIB2 ${infile} -grid -d 1 | sed 's/(/ /g' | sed 's/)/ /g' | sed '4!d' | awk '{print $2,$4,$6}'` + rdlat=`$WGRIB2 ${infile} -grid -d 1 | sed 's/(/ /g' | sed 's/)/ /g' | sed '3!d' | awk '{print $2,$4,$6}'` + echo ${nlola} >> gwes_stats.inp + echo ${rdlon} >> gwes_stats.inp + echo ${rdlat} >> gwes_stats.inp + fi + +# 1.b.3 Create binary file for input to gwes_stats FORTRAN executable + $WGRIB2 $infile -vt -match ${valtime} -bin data_${im} + ok1=$? + +# 1.b.4 Check for errors + if [ $ok1 -ne 0 ] ; then + echo " *** ERROR : para=$para, im=$im, ok1=$ok1" + exit + fi + echo data_$im >> gwes_stats.inp + + nme=`expr ${nme} + 1` + + done + +# +# 1.c Execute gwes_stats and create grib2 files +# + rm -f mean_out spread_out probab_out test_out +# + $EXECwave/gwes_stats < gwes_stats.inp >>$pgmout 2>&1 +# +# 1.d Check for errors and move output files to tagged grib2 parameter-hour files + if [ ! -f mean_out ] + then + msg="ABNORMAL EXIT: ERR mean_out not gerenerated for ${nnip} $hhh." + postmsg "$jlogfile" "$msg" + set +x + echo "--- mean_out not gerenerated for ${nnip} $hhh --- " + [[ "$LOUD" = YES ]] && set -x + echo "mean_out not gerenerated for ${nnip} $hhh" >> $wave_log + err=1;export err;err_chk + else + mv -f mean_out ${nnip}_mean.$hhh.grib2 + fi + if [ ! -f spread_out ] + then + msg="ABNORMAL EXIT: ERR spread_out not gerenerated for ${nnip} $hhh." + postmsg "$jlogfile" "$msg" + set +x + echo "--- spread_out not gerenerated for ${nnip} $hhh --- " + [[ "$LOUD" = YES ]] && set -x + echo "spread_out not gerenerated for ${nnip} $hhh" >> $wave_log + err=1;export err;err_chk + else + mv -f spread_out ${nnip}_spread.$hhh.grib2 + fi + + nscale=`echo ${ascale[@]} | wc -w` + if [ ${nscale} -gt 1 ] + then + if [ ! -f probab_out ] + then + msg="ABNORMAL EXIT: ERR probab_out not gerenerated for ${nnip} $hhh." + postmsg "$jlogfile" "$msg" + set +x + echo "--- probab_out not gerenerated for ${nnip} $hhh --- " + [[ "$LOUD" = YES ]] && set -x + echo "probab_out not gerenerated for ${nnip} $hhh" >> $wave_log + err=1;export err;err_chk + else + mv -f probab_out ${nnip}_probab.$hhh.grib2 + fi + fi + +# +# 2. Cleanup +# Remove binary data files + rm -f data_?? + +# +# End of wave_gwes_stats.sh diff --git a/ush/wave_grib2.sh b/ush/wave_grib2.sh new file mode 100755 index 0000000000..b91f723200 --- /dev/null +++ b/ush/wave_grib2.sh @@ -0,0 +1,225 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grib2_sbs.sh +# Script description: Create grib2 files for the wave component +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-07-11 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $GRIBDATA +# postmsg "$jlogfile" "Making GRIB2 Files." # commented to reduce unnecessary output to jlogfile + + grdID=$1 + gribDIR=${grdID}_grib + rm -rfd ${gribDIR} + mkdir ${gribDIR} + err=$? + if [ $err != 0 ] + then + set +x + echo ' ' + echo '******************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '******************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2 (Could not create temp directory)" + exit 1 + fi + + cd ${gribDIR} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + dtgrib=$2 + ngrib=$3 + GRIDNR=$4 + MODNR=$5 + gribflags=$6 + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRIB files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$dtgrib" ] || [ -z "$ngrib" ] || [ -z "$gribflags" ] || \ + [ -z "$GRIDNR" ] || [ -z "$MODNR" ] || [ -z "$SENDDBN" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Starting time for output + + ymdh=$YMDH + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + set +x + echo " Starting time : $tstart" + echo " Time step : $dtgrib" + echo " Number of times : $ngrib" + echo " GRIB field flags : $gribflags" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.e Links to working directory + + ln -s ../mod_def.$grdID mod_def.ww3 + ln -s ../out_grd.$grdID out_grd.ww3 + +# --------------------------------------------------------------------------- # +# 1. Generate GRIB file with all data +# 1.a Generate input file for ww3_grib2 +# Template copied in mother script ... + + set +x + echo " Generate input file for ww3_grib2" + [[ "$LOUD" = YES ]] && set -x + + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtgrib/g" \ + -e "s/NT/$ngrib/g" \ + -e "s/GRIDNR/$GRIDNR/g" \ + -e "s/MODNR/$MODNR/g" \ + -e "s/FLAGS/$gribflags/g" \ + ../ww3_grib2.inp.tmpl > ww3_grib.inp + +# 1.b Run GRIB packing program + + set +x + echo " Run ww3_grib2" + echo " Executing $EXECcode/ww3_grib" + [[ "$LOUD" = YES ]] && set -x + + ln -sf ../$WAV_MOD_TAG.$grdID.${cycle}.grib2 gribfile + $EXECcode/ww3_grib + err=$? + + if [ $err != 0 ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 3 + fi + +# 1.c Clean up + + rm -f ww3_grib.inp + rm -f mod_def.ww3 + rm -f out_grd.ww3 + +# 1.e Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" + [[ "$LOUD" = YES ]] && set -x + cp -f ${DATA}/$WAV_MOD_TAG.$grdID.$cycle.grib2 $COMOUT/gridded/ + $WGRIB2 -s $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 > $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx + + if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2 to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 4 + fi + if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 INDEX FILE *** ' + echo '*************************************************** ' + echo ' ' + echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2idx to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN creating ww3_grib2 index" + exit 4 + fi + + if [ "$SENDDBN" = 'YES' ] + then + set +x + echo " Alerting GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" + echo " Alerting GRIB index file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx" + [[ "$LOUD" = YES ]] && set -x + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2_WIDX $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx + fi + fi + + +# --------------------------------------------------------------------------- # +# 3. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd .. + mv -f ${gribDIR} done.${gribDIR} + + set +x + echo ' ' + echo "End of ww3_grib2.sh at" + date + [[ "$LOUD" = YES ]] && set -x + +# End of ww3_grib2.sh -------------------------------------------------- # diff --git a/ush/wave_grib2_cat.sh b/ush/wave_grib2_cat.sh new file mode 100755 index 0000000000..ddd3e03ccd --- /dev/null +++ b/ush/wave_grib2_cat.sh @@ -0,0 +1,188 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grib2_cat.sh +# Script description: Concatenates files from wave model component +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2014-01-16 +# Abstract: Creates bulletin for NCEP Global Wave Ensemble using grib2 data. +# Values at buoy locations are extracted using wgrib2 bi-linear +# interpolation (-new_grid) and requires IPOLATES lib. +# +# Script history log: +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA +# postmsg "$jlogfile" "Catting GRIB2 Files." # commented to reduce unnecessary output to jlogfile + + grdID=$1 + rm -rf grib_$grdID + mkdir grib_$grdID + err=$? + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN multiwavegrib2_cat (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '******************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2_cat (Could not create temp directory)" + exit 1 + fi + + cd grib_$grdID + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + dtgrib=$2 + ngrib=$3 + GRIDNR=$4 + MODNR=$5 + gribflags=$6 + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRIB files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$SENDDBN" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Starting time for output + + ymdh=$YMDH + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + set +x + echo " Starting time : $tstart" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.d sync important files + +# 0.e Links to working directory + +# --------------------------------------------------------------------------- # +# 1. Generate GRIB file with all data + +# 1.b Run GRIB packing program + + + set +x + echo " Catting grib2 files ${COMOUT}/gridded/$WAV_MOD_TAG.$grdID.$cycle.f???.grib2" + [[ "$LOUD" = YES ]] && set -x + + ln -sf ../$WAV_MOD_TAG.$grdID.$cycle.grib2 gribfile + cat ${COMOUT}/gridded/$WAV_MOD_TAG.$grdID.$cycle.f???.grib2 >> gribfile + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '************************************************* ' + echo '*** FATAL ERROR : ERROR IN multiwavegrib2_cat *** ' + echo '************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2_cat" + exit 3 + fi + +# 1.e Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" + [[ "$LOUD" = YES ]] && set -x + cp gribfile $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 + + if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN multiwavegrib2 *** ' + echo '********************************************* ' + echo ' ' + echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2 to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2" + exit 4 + fi + + echo " Creating wgrib index of $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" + $WGRIB2 -s $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 > $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx + + if [ "$SENDDBN" = 'YES' ] + then + set +x + echo " Alerting GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" + echo " Alerting GRIB index file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx" + [[ "$LOUD" = YES ]] && set -x + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2_WIDX $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx + fi + fi + + +# --------------------------------------------------------------------------- # +# 3. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd .. + mv -f grib_$grdID done.grib_$grdID + + set +x + echo ' ' + echo "End of multiwavegrib2_cat.sh at" + date + [[ "$LOUD" = YES ]] && set -x + +# End of multiwavegrib2.sh -------------------------------------------------- # diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh new file mode 100755 index 0000000000..3e8bef351c --- /dev/null +++ b/ush/wave_grib2_sbs.sh @@ -0,0 +1,222 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grib2_sbs.sh +# Script description: Create grib2 files for the wave component +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-07-11 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $GRIBDATA +# postmsg "$jlogfile" "Making GRIB2 Files." # commented to reduce unnecessary output to jlogfile + + grdID=$1 + gribDIR=${grdID}_grib + rm -rfd ${gribDIR} + mkdir ${gribDIR} + err=$? + if [ $err != 0 ] + then + set +x + echo ' ' + echo '******************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '******************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2 (Could not create temp directory)" + exit 1 + fi + + cd ${gribDIR} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + GRIDNR=$2 + MODNR=$3 + ymdh=$4 + fhr=$5 + grdnam=$6 + grdres=$7 + gribflags=$8 + ngrib=1 # only one time slice + dtgrib=3600 # only one time slice +# SBS one time slice per file + FH3=$(printf %03i $fhr) + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRIB files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$gribflags" ] || \ + [ -z "$GRIDNR" ] || [ -z "$MODNR" ] || [ -z "$SENDDBN" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Starting time for output + + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + set +x + echo " Starting time : $tstart" + echo " Time step : Single SBS + echo " Number of times : Single SBS + echo " GRIB field flags : $gribflags" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.e Links to working directory + + ln -s ${DATA}/mod_def.$grdID mod_def.ww3 + ln -s ${DATA}/output_${ymdh}0000/out_grd.$grdID out_grd.ww3 + +# --------------------------------------------------------------------------- # +# 1. Generate GRIB file with all data +# 1.a Generate input file for ww3_grib2 +# Template copied in mother script ... + + set +x + echo " Generate input file for ww3_grib2" + [[ "$LOUD" = YES ]] && set -x + + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtgrib/g" \ + -e "s/NT/$ngrib/g" \ + -e "s/GRIDNR/$GRIDNR/g" \ + -e "s/MODNR/$MODNR/g" \ + -e "s/FLAGS/$gribflags/g" \ + ${DATA}/ww3_grib2.${grdID}.inp.tmpl > ww3_grib.inp + +# 1.b Run GRIB packing program + + set +x + echo " Run ww3_grib2" + echo " Executing $EXECcode/ww3_grib" + [[ "$LOUD" = YES ]] && set -x + ENSTAG="" + if [ ${waveMEMB} ]; then ENSTAG=".${membTAG}${waveMEMB}" ; fi + outfile=${WAV_MOD_TAG}.${cycle}${ENSTAG}.${grdnam}.${grdres}.f${FH3}.grib2 + $EXECcode/ww3_grib + $WGRIB2 gribfile -set_date $CDATE -set_ftime "$fhr hour fcst" -grib ${COMOUT}/gridded/${outfile} + err=$? + + if [ $err != 0 ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 3 + fi + +# Create index + $WGRIB2 -s $COMOUT/gridded/${outfile} > $COMOUT/gridded/${outfile}.idx + +# 1.e Save in /com + + if [ ! -s $COMOUT/gridded/${outfile} ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + echo " Error in moving grib file ${outfile} to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 4 + fi + if [ ! -s $COMOUT/gridded/${outfile} ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 INDEX FILE *** ' + echo '*************************************************** ' + echo ' ' + echo " Error in moving grib file ${outfile}.idx to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN creating ww3_grib2 index" + exit 4 + fi + + if [ "$SENDDBN" = 'YES' ] + then + set +x + echo " Alerting GRIB file as $COMOUT/gridded/${outfile}" + echo " Alerting GRIB index file as $COMOUT/gridded/${outfile}.idx" + [[ "$LOUD" = YES ]] && set -x + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/${outfile} + $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2_WIDX $job $COMOUT/gridded/${outfile}.idx + fi + + +# --------------------------------------------------------------------------- # +# 3. Clean up the directory + + rm -f gribfile + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd ../ + mv -f ${gribDIR} done.${gribDIR} + + set +x + echo ' ' + echo "End of ww3_grib2.sh at" + date + [[ "$LOUD" = YES ]] && set -x + +# End of ww3_grib2.sh -------------------------------------------------- # diff --git a/ush/wave_grid_interp.sh b/ush/wave_grid_interp.sh new file mode 100755 index 0000000000..bb91840212 --- /dev/null +++ b/ush/wave_grid_interp.sh @@ -0,0 +1,209 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_interp.sh +# Script description: Create grib2 files for the wave component +# +# Author: Arun Chawla Org: NCEP/EMC Date: 2009-07-22 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + grdID=$1 + ymdh=$2 + dt=$3 + nst=$4 + postmsg "$jlogfile" "Making GRID Interpolation Files for $grdID." + rm -rf grint_${grdID}_${ymdh} + mkdir grint_${grdID}_${ymdh} + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '************************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grid_interp (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '************************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid_interp (Could not create temp directory)" + exit 1 + fi + + cd grint_${grdID}_${ymdh} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRID files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + echo "$YMDH $cycle $EXECcode $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Links to files + + rm -f ../out_grd.$grdID + + if [ ! -f ../${grdID}_interp.inp.tmpl ]; then + cp $FIXwave/${grdID}_interp.inp.tmpl ../. + fi + ln -sf ../${grdID}_interp.inp.tmpl . + + for ID in $waveGRD + do + ln -sf ../out_grd.$ID . + done + + for ID in $waveGRD $grdID + do + ln -sf ../mod_def.$ID . + done + +# --------------------------------------------------------------------------- # +# 1. Generate GRID file with all data +# 1.a Generate Input file + + time="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + sed -e "s/TIME/$time/g" \ + -e "s/DT/$dt/g" \ + -e "s/NSTEPS/$nst/g" ${grdID}_interp.inp.tmpl > ww3_gint.inp + +# Check if there is an interpolation weights file available + + wht_OK='no' + if [ ! -f ${DATA}/WHTGRIDINT.bin.${grdID} ]; then + if [ -f $FIXwave/WHTGRIDINT.bin.${grdID} ] + then + set +x + echo ' ' + echo " Copying $FIXwave/WHTGRIDINT.bin.${grdID} " + [[ "$LOUD" = YES ]] && set -x + cp $FIXwave/WHTGRIDINT.bin.${grdID} ${DATA} + wht_OK='yes' + else + set +x + echo ' ' + echo " Not found: $FIXwave/WHTGRIDINT.bin.${grdID} " + fi + fi +# Check and link weights file + if [ -f ${DATA}/WHTGRIDINT.bin.${grdID} ] + then + ln -s ${DATA}/WHTGRIDINT.bin.${grdID} ./WHTGRIDINT.bin + fi + +# 1.b Run interpolation code + + set +x + echo " Run ww3_gint + echo " Executing $EXECcode/ww3_gint + [[ "$LOUD" = YES ]] && set -x + + $EXECcode/ww3_gint + err=$? + +# Write interpolation file to main TEMP dir area if not there yet + if [ "wht_OK" = 'no' ] + then + cp -f ./WHTGRIDINT.bin ${DATA}/WHTGRIDINT.bin.${grdID} + cp -f ./WHTGRIDINT.bin ${FIXwave}/WHTGRIDINT.bin.${grdID} + fi + + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_gint interpolation * ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_gint interpolation" + exit 3 + fi + +# 1.b Clean up + + rm -f grid_interp.inp + rm -f mod_def.* + mv out_grd.$grdID ../out_grd.$grdID + +# 1.c Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc" + [[ "$LOUD" = YES ]] && set -x + cp ../out_grd.$grdID $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc + +# if [ "$SENDDBN" = 'YES' ] +# then +# set +x +# echo " Alerting GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc +# [[ "$LOUD" = YES ]] && set -x + +# +# PUT DBNET ALERT HERE .... +# + +# fi + fi + +# --------------------------------------------------------------------------- # +# 2. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd .. + mv -f grint_${grdID}_${ymdh} done.grint_${grdID}_${ymdh} + + set +x + echo ' ' + echo "End of ww3_interp.sh at" + date + +# End of ww3_grid_interp.sh -------------------------------------------- # diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh new file mode 100755 index 0000000000..0f78d3f557 --- /dev/null +++ b/ush/wave_grid_interp_sbs.sh @@ -0,0 +1,217 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_interp_sbs.sh +# Script description: Interpolate from native grids to target grid +# +# Author: J-Henrique Alves Org: NCEP/EMC Date: 2019-11-02 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $GRDIDATA + + grdID=$1 + ymdh=$2 + dt=$3 + nst=$4 + postmsg "$jlogfile" "Making GRID Interpolation Files for $grdID." + rm -rf grint_${grdID}_${ymdh} + mkdir grint_${grdID}_${ymdh} + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '************************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grid_interp (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '************************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid_interp (Could not create temp directory)" + exit 1 + fi + + cd grint_${grdID}_${ymdh} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRID files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + echo "$CDATE $cycle $EXECcode $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Links to files + + rm -f ${DATA}/output_${ymdh}0000/out_grd.$grdID + + if [ ! -f ${DATA}/${grdID}_interp.inp.tmpl ]; then + cp $FIXwave/${grdID}_interp.inp.tmpl ${DATA} + fi + ln -sf ${DATA}/${grdID}_interp.inp.tmpl . + + for ID in $waveGRD + do + ln -sf ${DATA}/output_${ymdh}0000/out_grd.$ID . + done + + for ID in $waveGRD $grdID + do + ln -sf ${DATA}/mod_def.$ID . + done + +# --------------------------------------------------------------------------- # +# 1. Generate GRID file with all data +# 1.a Generate Input file + + time="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + sed -e "s/TIME/$time/g" \ + -e "s/DT/$dt/g" \ + -e "s/NSTEPS/$nst/g" ${grdID}_interp.inp.tmpl > ww3_gint.inp + +# Check if there is an interpolation weights file available + + wht_OK='no' + if [ ! -f ${DATA}/WHTGRIDINT.bin.${grdID} ]; then + if [ -f $FIXwave/WHTGRIDINT.bin.${grdID} ] + then + set +x + echo ' ' + echo " Copying $FIXwave/WHTGRIDINT.bin.${grdID} " + [[ "$LOUD" = YES ]] && set -x + cp $FIXwave/WHTGRIDINT.bin.${grdID} ${DATA} + wht_OK='yes' + else + set +x + echo ' ' + echo " Not found: $FIXwave/WHTGRIDINT.bin.${grdID} " + fi + fi +# Check and link weights file + if [ -f ${DATA}/WHTGRIDINT.bin.${grdID} ] + then + ln -s ${DATA}/WHTGRIDINT.bin.${grdID} ./WHTGRIDINT.bin + fi + +# 1.b Run interpolation code + + set +x + echo " Run ww3_gint + echo " Executing $EXECcode/ww3_gint + [[ "$LOUD" = YES ]] && set -x + + $EXECcode/ww3_gint + err=$? + +# Write interpolation file to main TEMP dir area if not there yet + if [ "wht_OK" = 'no' ] + then + cp -f ./WHTGRIDINT.bin ${DATA}/WHTGRIDINT.bin.${grdID} + cp -f ./WHTGRIDINT.bin ${FIXwave}/WHTGRIDINT.bin.${grdID} + fi + + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_gint interpolation * ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_gint interpolation" + exit 3 + fi + +# 1.b Clean up + + rm -f grid_interp.inp + rm -f mod_def.* + mv out_grd.$grdID ${DATA}/output_${ymdh}0000/out_grd.$grdID + +# 1.c Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE}" + [[ "$LOUD" = YES ]] && set -x + cp ${DATA}/output_${ymdh}0000/out_grd.$grdID $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE} + +# if [ "$SENDDBN" = 'YES' ] +# then +# set +x +# echo " Alerting GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE} +# [[ "$LOUD" = YES ]] && set -x + +# +# PUT DBNET ALERT HERE .... +# + +# fi + fi + +# --------------------------------------------------------------------------- # +# 2. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd ../ + mv -f grint_${grdID}_${ymdh} done.grint_${grdID}_${ymdh} + + set +x + echo ' ' + echo "End of ww3_interp.sh at" + date + +# End of ww3_grid_interp.sh -------------------------------------------- # diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh new file mode 100755 index 0000000000..42976286aa --- /dev/null +++ b/ush/wave_grid_moddef.sh @@ -0,0 +1,136 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_moddef.sh +# Script description: Create grib2 files for the wave component +# +# Author: J-Henrique Alves Org: NCEP/EMC Date: 2011-04-08 +# Abstract: Creates model definition files for the wave model WW3 +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + postmsg "$jlogfile" "Generating mod_def file" + + mkdir -p moddef_${1} + cd moddef_${1} + + grdID=$1 + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Generate moddef file |' + echo '+--------------------------------+' + echo " Grid : $1" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.b Check if grid set + + if [ "$#" -lt '1' ] + then + set +x + echo ' ' + echo '**************************************************' + echo '*** Grid not identifife in ww3_mod_def.sh ***' + echo '**************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "GRID IN ww3_mod_def.sh NOT SET" + exit 1 + else + grdID=$1 + fi + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$grdID" ] || [ -z "$EXECcode" ] || [ -z "$wave_sys_ver" ] + then + set +x + echo ' ' + echo '*********************************************************' + echo '*** EXPORTED VARIABLES IN ww3_mod_def.sh NOT SET ***' + echo '*********************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_mod_def.sh NOT SET" + exit 2 + fi + +# --------------------------------------------------------------------------- # +# 2. Create mod_def file + + set +x + echo ' ' + echo ' Creating mod_def file ...' + echo " Executing $EXECcode/ww3_grid" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + rm -f ww3_grid.inp + ln -sf ../ww3_grid.inp.$grdID ww3_grid.inp + + $EXECcode/ww3_grid + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_grid *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid" + exit 3 + fi + + if [ -f mod_def.ww3 ] + then + cp mod_def.ww3 $COMOUT/rundata/${COMPONENTwave}.mod_def.${grdID} + mv mod_def.ww3 ../mod_def.$grdID + else + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : MOD DEF FILE NOT FOUND *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : Mod def File creation FAILED" + exit 4 + fi + +# --------------------------------------------------------------------------- # +# 3. Clean up + + cd .. + #rm -rf moddef_$grdID + + set +x + echo ' ' + echo 'End of ww3_mod_def.sh at' + date + +# End of ww3_mod_def.sh ------------------------------------------------- # diff --git a/ush/wave_outp_spec.sh b/ush/wave_outp_spec.sh new file mode 100755 index 0000000000..9cbcf6e9a6 --- /dev/null +++ b/ush/wave_outp_spec.sh @@ -0,0 +1,260 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_outp_spec.sh +# Script description: Generates ASCII data files with the wave spectral data +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-03-17 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + bloc=$1 + ymdh=$2 + specdir=$3 + + YMDHE=`$NDATE $FHMAX_WAV $CDATE` + + cd $SPECDATA + + rm -rf ${specdir}_${bloc} + mkdir ${specdir}_${bloc} + err=$? + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '****************************************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp_spec (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '****************************************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_outp_spec (Could not create temp directory)" + exit 1 + fi + + cd ${specdir}_${bloc} + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make spectral file |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + +# 0.b Check if buoy location set + + if [ "$#" -lt '1' ] + then + set +x + echo ' ' + echo '***********************************************' + echo '*** LOCATION ID IN ww3_outp_spec.sh NOT SET ***' + echo '***********************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "LOCATION ID IN ww3_outp_spec.sh NOT SET" + exit 1 + else + buoy=$bloc + grep $buoy ${DATA}/buoy_log.ww3 > tmp_list.loc + while read line + do + buoy_name=`echo $line | awk '{print $2}'` + if [ $buoy = $buoy_name ] + then + point=`echo $line | awk '{ print $1 }'` + set +x + echo " Location ID/# : $buoy (${point})" + echo " Spectral output start time : $ymdh " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + break + fi + done < tmp_list.loc + if [ -z "$point" ] + then + set +x + echo '******************************************************' + echo '*** LOCATION ID IN ww3_outp_spec.sh NOT RECOGNIZED ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "LOCATION ID IN ww3_outp_spec.sh NOT RECOGNIZED" + exit 2 + fi + fi + + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$CDATE" ] || [ -z "$dtspec" ] || [ -z "$EXECcode" ] || \ + [ -z "$WAV_MOD_TAG" ] || [ -z "${STA_DIR}" ] + then + set +x + echo ' ' + echo '******************************************************' + echo '*** EXPORTED VARIABLES IN ww3_outp_spec.sh NOT SET ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_outp_spec.sh NOT SET" + exit 3 + fi + +# 0.d Starting time for output + + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + YMD="`echo $ymdh | cut -c1-8`" + HMS="`echo $ymdh | cut -c9-10`0000" + set +x + echo " Output starts at $tstart." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.e sync important files + +# $FSYNC ${DATA}/mod_def.${waveuoutpGRD} +# $FSYNC ${DATA}/out_pnt.${waveuoutpGRD} +# $FSYNC ${DATA}/ww3_outp_spec.inp.tmpl + +# 0.f Links to mother directory + + ln -s ${DATA}/mod_def.${waveuoutpGRD} ./mod_def.ww3 + ln -s ${DATA}/output_${ymdh}0000/out_pnt.${waveuoutpGRD} ./out_pnt.ww3 + +# --------------------------------------------------------------------------- # +# 2. Generate spectral data file +# 2.a Input file for postprocessor + + set +x + echo " Generate input file for ww3_outp." + [[ "$LOUD" = YES ]] && set -x + + if [ "$specdir" = "bull" ] + then + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + truntime="`echo $CDATE | cut -c1-8` `echo $YMDH | cut -c9-10`0000" + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/$point/g" \ + -e "s/REFT/$truntime/g" \ + ${DATA}/ww3_outp_bull.inp.tmpl > ww3_outp.inp + outfile=${buoy}.bull + coutfile=${buoy}.cbull + else + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/$point/g" \ + -e "s/ITYPE/1/g" \ + -e "s/FORMAT/F/g" \ + ${DATA}/ww3_outp_spec.inp.tmpl > ww3_outp.inp + outfile=ww3.`echo $tstart | cut -c3-8``echo $tstart | cut -c10-11`.spc + fi + +# 2.b Run the postprocessor + + set +x + echo " Executing $EXECcode/ww3_outp" + [[ "$LOUD" = YES ]] && set -x + + $EXECcode/ww3_outp + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_outp" + exit 4 + fi + +# --------------------------------------------------------------------------- # +# 3. Clean up +# 3.a Move data to directory for station ascii files + + if [ -f $outfile ] + then + if [ "${ymdh}" = "${CDATE}" ] + then + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '9,$d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull + cat $coutfile | sed -e '8,$d' >> ${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull + else + #cat $outfile | sed -e '15,$d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + cat $outfile >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + fi + elif [ "${ymdh}" = "${YMDHE}" ] + then + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '1,7d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull + cat $coutfile | sed -e '1,6d' >> ${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull + else + cat $outfile | sed -n "/^${YMD} ${HMS}$/,\$p" >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + fi + else + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '1,7d' | sed -e '2,$d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull + cat $coutfile | sed -e '1,6d' | sed -e '2,$d' >> ${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull + else + cat $outfile | sed -n "/^${YMD} ${HMS}$/,\$p" >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + fi + fi + else + set +x + echo ' ' + echo '***************************************************************** ' + echo '*** FATAL ERROR : OUTPUT DATA FILE FOR BOUY $bouy NOT FOUND *** ' + echo '***************************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : OUTPUT DATA FILE FOR BOUY $bouy NOT FOUND" + exit 5 + fi + +# 3.b Clean up the rest + +# rm -f ww3_outp.inp +# rm -f mod_def.ww3 out_pnt.ww3 + + cd .. + mv -f $specdir_$buoy done.$specdir_$buoy + + set +x + echo ' ' + echo 'End of ww3_outp_spec.sh at' + date + +# End of ww3_outp_spec.sh ---------------------------------------------------- # diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh new file mode 100755 index 0000000000..1a6dd3608f --- /dev/null +++ b/ush/wave_prnc_cur.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_prns_cur.sh +# Script description: Acquires current data and generates binary input for WW3 +# +# Author: J.-Henrique Alves Org: NCEP/EMC Date: 2019-11-06 +# Abstract: Creates current binary data for forcing WW3 +# +# Script history log: +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +################################################################################ +# +set -x + +ymdh_rtofs=$1 +curfile=$2 + +# Timing has to be made relative to the single 00z RTOFS cycle for that PDY + +mkdir -p rtofs_${ymdh_rtofs} +cd rtofs_${ymdh_rtofs} + +ncks -x -v sst,sss,layer_density $curfile cur_uv_${PDY}_${fext}${fhr}.nc +ncks -O -a -h -x -v Layer cur_uv_${PDY}_${fext}${fhr}.nc cur_temp1.nc +ncwa -h -O -a Layer cur_temp1.nc cur_temp2.nc +ncrename -h -O -v MT,time cur_temp2.nc +ncrename -h -O -d MT,time cur_temp2.nc +ncks -v u_velocity,v_velocity cur_temp2.nc cur_temp3.nc +mv -f cur_temp3.nc cur_uv_${PDY}_${fext}${fhr}_flat.nc + +# Convert to regular lat lon file + +cp ${FIXwave}/weights_rtofs_to_r4320x2160.nc ./weights.nc + +# Interpolate to regular 5 min grid +$CDO remap,r4320x2160,weights.nc cur_uv_${PDY}_${fext}${fhr}_flat.nc cur_5min_01.nc + +# Perform 9-point smoothing twice to make RTOFS data less noisy when +# interpolating from 1/12 deg RTOFS grid to 1/6 deg wave grid +if [ "WAV_CUR_CDO_SMOOTH" = "YES" ]; then + $CDO -f nc -smooth9 cur_5min_01.nc cur_5min_02.nc + $CDO -f nc -smooth9 cur_5min_02.nc cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc +else + mv cur_5min_01.nc cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc +fi + +# Cleanup +rm -f cur_temp[123].nc cur_5min_??.nc cur_glo_uv_${PDY}_${fext}${fhr}.nc weights.nc + +if [ ${fhr_wave} -gt ${WAVHINDH} ] +then + sed -e "s/HDRFL/F/g" ${FIXwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp +else + sed -e "s/HDRFL/T/g" ${FIXwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp +fi + +rm -f cur.nc +ln -s cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc cur.nc +ln -s ${DATA}/mod_def.rtofs_5m ./mod_def.ww3 + +$EXECcode/ww3_prnc + +mv -f current.ww3 ${DATA}/${WAVECUR_FID}.${ymdh_rtofs} + +cd ${DATA} + diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh new file mode 100755 index 0000000000..328b8c6728 --- /dev/null +++ b/ush/wave_prnc_ice.sh @@ -0,0 +1,198 @@ +#!/bin/sh +############################################################################### +# # +# This script preprocesses ice fields for the ocean wave models. # +# It is run as a child scipt by the corresponding preprocessig script. # +# # +# Remarks : # +# - This script runs in the work directory designated in the mother script in # +# which it generates its own sub-directory 'ice'. # +# - Because this script is not essential for the running for the wave model # +# (as long as it runs every now and then) the error exit codes are set to # +# 0. The main program script will then not find the file ice.ww3 and send # +# a message to the wave.log file. # +# - See section 0.b for variables that need to be set. # +# # +# Update record : # +# # +# - Origination: Hendrik Tolman 01-Mar-2007 # +# # +# Update log # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + cd $DATA + seton='-xa' + setoff='+xa' + set $seton + + rm -rf ice + mkdir ice + cd ice + ln -s ${DATA}/postmsg . + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set $setoff + echo ' ' + echo '+--------------------------------+' + echo '! Make ice fields |' + echo '+--------------------------------+' + echo " Model TAG : $WAV_MOD_TAG" + echo " Model ID : $COMPONENTwave" + echo " Ice grid ID : $WAVEICE_FID" + echo " Ice file : $WAVICEFILE" + echo ' ' + set $seton + postmsg "$jlogfile" "Making ice fields." + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || \ + [ -z "$COMOUT" ] || [ -z "$FIXwave" ] || [ -z "$EXECcode" ] || \ + [ -z "$WAV_MOD_TAG" ] || [ -z "$WAVEICE_FID" ] || [ -z "$SENDCOM" ] || \ + [ -z "$COMIN_WAV_ICE" ] || [ -z "$COMPONENTwave" ] + then + set $setoff + echo ' ' + echo '**************************************************' + echo '*** EXPORTED VARIABLES IN preprocessor NOT SET ***' + echo '**************************************************' + echo ' ' + exit 0 + set $seton + postmsg "$jlogfile" "NON-FATAL ERROR - EXPORTED VARIABLES IN preprocessor NOT SET" + fi + +# 0.c Links to working directory + + ln -s ${DATA}/mod_def.$WAVEICE_FID mod_def.ww3 + +# --------------------------------------------------------------------------- # +# 1. Get the necessary files +# 1.a Copy the ice data file + + file=${COMIN_WAV_ICE}/${WAVICEFILE} + + if [ -f $file ] + then + cp $file ice.grib + fi + + if [ -f ice.grib ] + then + set $setoff + echo " ice.grib copied ($file)." + set $seton + else + set $setoff + echo ' ' + echo '************************************** ' + echo "*** FATAL ERROR: NO ICE FILE $file *** " + echo '************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "FATAL ERROR - NO ICE FILE (GFS GRIB)" + exit 0 + fi + +# --------------------------------------------------------------------------- # +# 2. Process the GRIB packed ice file +# 2.a Unpack data + + set $setoff + echo ' Extracting data from ice.grib ...' + set $seton + + $WGRIB2 ice.grib -netcdf icean_5m.nc 2>&1 > wgrib.out + + + err=$? + + if [ "$err" != '0' ] + then + cat wgrib.out + set $setoff + echo ' ' + echo '**************************************** ' + echo '*** ERROR IN UNPACKING GRIB ICE FILE *** ' + echo '**************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "ERROR IN UNPACKING GRIB ICE FILE." + exit 0 + fi + + rm -f wgrib.out + rm -f ice.grib + rm -f ice.index + + +# 2.d Run through preprocessor wave_prep + + set $setoff + echo ' Run through preprocessor ...' + echo ' ' + set $seton + + cp -f ${DATA}/ww3_prnc.ice.$WAVEICE_FID.inp.tmpl ww3_prnc.inp + + $EXECcode/ww3_prnc > wave_prnc.out + err=$? + + if [ "$err" != '0' ] + then + cat wave_prep.out + set $setoff + echo ' ' + echo '************************* ' + echo '*** ERROR IN waveprep *** ' + echo '************************* ' + echo ' ' + set $seton + postmsg "$jlogfile" "NON-FATAL ERROR IN waveprep." + exit 0 + fi + + rm -f wave_prep.out ww3_prep.inp ice.raw mod_def.ww3 + +# --------------------------------------------------------------------------- # +# 3. Save the ice file +# +# Ice file name will have ensemble member number if WW3ATMIENS=T +# and only WAV_MOD_ID if WW3ATMIENS=F +# + if [ "${WW3ATMIENS}" = "T" ] + then + icefile=${WAV_MOD_TAG}.${WAVEICE_FID}.$cycle.ice + elif [ "${WW3ATMIENS}" = "F" ] + then + icefile=${COMPONENTwave}.${WAVEICE_FID}.$cycle.ice + fi + + set $setoff + echo " Saving ice.ww3 as $COMOUT/rundata/${icefile}" + set $seton + cp ice.ww3 $COMOUT/rundata/${icefile} + rm -f ice.ww3 + +# --------------------------------------------------------------------------- # +# 4. Clean up the directory + + set $setoff + echo " Removing work directory after success." + set $seton + + cd .. + rm -rf ice + + set $setoff + echo ' ' + echo 'End of waveice.sh at' + date + +# End of waveice.sh --------------------------------------------------------- # diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh new file mode 100755 index 0000000000..edeb1994d9 --- /dev/null +++ b/ush/wave_tar.sh @@ -0,0 +1,231 @@ +#!/bin/bash +############################################################################### +# # +# This script tars the sectral or bulletin files into a single file and # +# puts it into /com. This is a separate script to enable it to be run in # +# parallel using poe. It also tars the spectral and bulletin files of the # +# old grids that are generated for backward compatibility # +# # +# Remarks : # +# - Shell script variables controling time, directories etc. are set in the # +# mother script. # +# - This script runs in the work directory designated in the mother script. # +# Under this directory it geneates a work directory TAR_$type_$ID which is # +# removed if this script exits normally. # +# - See section 0.c for variables that need to be set. # +# # +# Origination: Hendrik Tolman March 13, 2007 # +# Update log # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + postmsg "$jlogfile" "Making TAR FILE" + + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make tar file |' + echo '+--------------------------------+' + echo " ID : $1" + echo " Type : $2" + echo " Number of files : $3" + [[ "$LOUD" = YES ]] && set -x + + +# 0.b Check if type set + + if [ "$#" -lt '3' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** VARIABLES IN ww3_tar.sh NOT SET ***' + echo '********************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "TYPE IN ww3_tar.sh NOT SET" + exit 1 + else + ID=$1 + type=$2 + nb=$3 + fi + + filext=$type + if [ "$type" = "ibp" ]; then filext='spec'; fi + + rm -rf TAR_${filext}_$ID + mkdir TAR_${filext}_$ID +# this directory is used only for error capturing + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$cycle" ] || [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || \ + [ -z "$SENDCOM" ] || [ -z "$SENDDBN" ] || [ -z "${STA_DIR}" ] + then + set +x + echo ' ' + echo '*****************************************************' + echo '*** EXPORTED VARIABLES IN ww3_tar.sh NOT SET ***' + echo '*****************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_tar.sh NOT SET" + exit 2 + fi + + cd ${STA_DIR}/${type} + +# --------------------------------------------------------------------------- # +# 2. Generate tar file (spectral files are compressed) + + set +x + echo ' ' + echo ' Making tar file ...' + + count=0 + countMAX=5 + tardone='no' + + while [ "$count" -lt "$countMAX" ] && [ "$tardone" = 'no' ] + do + + [[ "$LOUD" = YES ]] && set -v + # JY nf=`ls $ID.*.$type | wc -l | awk '{ print $1 }'` + nf=`ls | awk '/'$ID.*.$filext'/ {a++} END {print a}'` + if [ "$nf" = "$nb" ] + then + tar -cf $ID.$cycle.${type}_tar ./$ID.*.$filext + exit=$? + set +v; [[ "$LOUD" = YES ]] && set -x + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '***************************************** ' + echo '*** FATAL ERROR : TAR CREATION FAILED *** ' + echo '***************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR CREATION FAILED" + exit 3 + fi + + if [ -f "$ID.$cycle.${type}_tar" ] + then + tardone='yes' + fi + else + set +x + echo ' All files not found for tar. Sleeping 10 seconds and trying again ..' + [[ "$LOUD" = YES ]] && set -x + sleep 10 + count=`expr $count + 1` + fi + + done + + if [ "$tardone" = 'no' ] + then + set +x + echo ' ' + echo '***************************************** ' + echo '*** FATAL ERROR : TAR CREATION FAILED *** ' + echo '***************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR CREATION FAILED" + exit 3 + fi + + if [ "$filext" = 'spec' ] + then + if [ -s $ID.$cycle.${type}_tar ] + then + file_name=$ID.$cycle.${type}_tar.gz + /usr/bin/gzip -c $ID.$cycle.${type}_tar > ${file_name} + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '***************************************************** ' + echo '*** FATAL ERROR : SPECTRAL TAR COMPRESSION FAILED *** ' + echo '***************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : SPECTRAL TAR COMPRESSION FAILED" + exit 4 + fi + fi + else + file_name=$ID.$cycle.${type}_tar + fi + +# --------------------------------------------------------------------------- # +# 3. Move data to /com + + set +x + echo ' ' + echo " Moving tar file ${file_name} to $COMOUT ..." + [[ "$LOUD" = YES ]] && set -x + + cp ${file_name} $COMOUT/station/. + + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '************************************* ' + echo '*** FATAL ERROR : TAR COPY FAILED *** ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR COPY FAILED" + exit 4 + fi + + if [ "$SENDDBN" = 'YES' ] + then + set +x + echo ' ' + echo " Alerting TAR file as $COMOUT/station/${file_name}" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + $DBNROOT/bin/dbn_alert MODEL OMBWAVE $job $COMOUT/station/${file_name} + fi + +# --------------------------------------------------------------------------- # +# 4. Final clean up + + cd $DATA + + set +x; [[ "$LOUD" = YES ]] && set -v + rm -f ${STA_DIR}/${type} + set +v + + echo ' ' + echo 'End of ww3_tar.sh at' + date + +# End of ww3_tar.sh ----------------------------------------------------- # From b2c244e0764b3cd88d7d6677f9812d4435840ee2 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Wed, 4 Mar 2020 21:02:04 +0000 Subject: [PATCH 04/91] Fix to JWAVE_PREP to look back a day for rtofs --- jobs/JWAVE_PREP | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 6168d78f9c..7c2a689f96 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -51,6 +51,8 @@ export cycle=${cycle:-t${cyc}z} # Set PDY setpdy.sh sh ./PDY +# Set rtofs PDY +export RPDY=$PDY export pgmout=OUTPUT.$$ @@ -81,16 +83,21 @@ export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} if [ $RUN_ENVIR = "nco" ]; then export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} export COMIN_WAV_WND=${COMIN_WAV_WND:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} - export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.$PDY + export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.${RPDY} + if [ ! -d $COMIN_WAV_CUR ]; then + export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8` + export COMIN_WAV_CUR=$(compath.py ${WAVECUR_DID}/prod)/${WAVECUR_DID}.${RPDY} + fi else - if [ ! -L $ROTDIR/${WAVECUR_DID}.${PDY} ]; then # Check if symlink already exists in ROTDIR - $NLN $DMPDIR/${WAVECUR_DID}.${PDY} $ROTDIR/${WAVECUR_DID}.${PDY} - $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} + if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8`; fi + if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} fi + $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} export COMIN_WAV_ICE=${COMIN_OBS} export COMIN_WAV_WND=${COMIN_OBS} - export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${PDY} + export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${RPDY} fi if [ $SENDCOM = YES ]; then From dd7d44dfcc18ed253ca4d13580d5ef6e01f7759a Mon Sep 17 00:00:00 2001 From: Henrique Alves Date: Thu, 5 Mar 2020 04:03:44 +0000 Subject: [PATCH 05/91] Moving standalone fv3 model_config exglobal_fcst block into if/else/fi cplwav model_config block. Reinstating config.wave block in JGLOBAL_FORECAST. Pointing EXECwave to HOMEgfs/exec directory for WW3 util executables (changed link_fv3gfs.sh accordingly). Removing debug options from compile.sh line in build_fv3.sh. --- jobs/JWAVE_INIT | 4 ++-- jobs/JWAVE_POST_SBS | 4 ++-- jobs/JWAVE_PREP | 4 ++-- scripts/exwave_post_sbs.sh | 8 ++++++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index 8da1cef003..781c69c33e 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -57,12 +57,12 @@ NTASKS=${NTASKS:-${npe_node_waveinit}} export NTASKS=${NTASKS:?NTASKS required to be set} # Path to HOME Directory -export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3} export EXECwave=${EXECwave:-$HOMEwave/exec} export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} export PARMwave=${PARMwave:-$HOMEwave/parm/wave} export USHwave=${USHwave:-$HOMEwave/ush} -export EXECcode=${EXECcode:-$CODEwave/exe} +export EXECcode=${EXECcode:-$CODEwave/exec} # Set COM Paths and GETGES environment export COMINwave=${COMINwave:-${ROTDIR:?}} diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS index 49f21c67d2..6e60567d3f 100755 --- a/jobs/JWAVE_POST_SBS +++ b/jobs/JWAVE_POST_SBS @@ -58,12 +58,12 @@ export pgmout=OUTPUT.$$ export MP_PULSE=0 # Path to HOME Directory -export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3} export EXECwave=${EXECwave:-$HOMEwave/exec} export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} export PARMwave=${PARMwave:-$HOMEwave/parm/wave} export USHwave=${USHwave:-$HOMEwave/ush} -export EXECcode=${EXECcode:-$CODEwave/exe} +export EXECcode=${EXECcode:-$CODEwave/exec} # Set COM Paths and GETGES environment export COMINwave=${COMINwave:-${ROTDIR:?}} diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 7c2a689f96..dcb7b0df06 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -63,12 +63,12 @@ export MP_PULSE=0 export CDO=/gpfs/dell2/emc/verification/noscrub/Todd.Spindler/CDO/bin/cdo # Path to HOME Directory -export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3/model} +export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3} export EXECwave=${EXECwave:-$HOMEwave/exec} export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} export PARMwave=${PARMwave:-$HOMEwave/parm/wave} export USHwave=${USHwave:-$HOMEwave/ush} -export EXECcode=${EXECcode:-$CODEwave/exe} +export EXECcode=${EXECcode:-$CODEwave/exec} ################################### # Set COM Paths and GETGES environment diff --git a/scripts/exwave_post_sbs.sh b/scripts/exwave_post_sbs.sh index 9def345e3c..edbb68f639 100755 --- a/scripts/exwave_post_sbs.sh +++ b/scripts/exwave_post_sbs.sh @@ -38,6 +38,10 @@ export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES [[ "$LOUD" != YES ]] && set +x + # Set buffered output + export FORT_BUFFERED=true + export FORT_BLOCKSIZE=8192 + cd $DATA postmsg "$jlogfile" "HAS BEGUN on `hostname`" @@ -595,8 +599,8 @@ then gribFL=\'`echo ${OUTPARS_WAV}`\' case $grdID in - glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=255 ;; - glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=255 ;; + glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;; esac echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} fi From 57fd7213f33912a94062e3882480b4d75b495547 Mon Sep 17 00:00:00 2001 From: Jose-Henrique Alves <47567389+ajhenrique@users.noreply.github.com> Date: Wed, 4 Mar 2020 23:53:41 -0500 Subject: [PATCH 06/91] Clean up exwave_post_sbs --- scripts/exwave_post_sbs.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/exwave_post_sbs.sh b/scripts/exwave_post_sbs.sh index edbb68f639..6f1a1dec38 100755 --- a/scripts/exwave_post_sbs.sh +++ b/scripts/exwave_post_sbs.sh @@ -38,10 +38,6 @@ export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES [[ "$LOUD" != YES ]] && set +x - # Set buffered output - export FORT_BUFFERED=true - export FORT_BLOCKSIZE=8192 - cd $DATA postmsg "$jlogfile" "HAS BEGUN on `hostname`" From 57b03622e769fbf6d1218bb3427877a1ea5d7eb6 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 6 Mar 2020 16:12:54 +0000 Subject: [PATCH 07/91] clean up unused schema move default value into defaults/ --- workflow/defaults/case.yaml | 30 +++++++++++------------------- workflow/defaults/downstream.yaml | 6 ++++++ workflow/defaults/post.yaml | 14 ++++++++++++++ workflow/schema/case.yaml | 31 ------------------------------- workflow/schema/chgres.yaml | 10 ---------- workflow/schema/downstream.yaml | 23 ----------------------- workflow/schema/post.yaml | 12 ++++-------- 7 files changed, 35 insertions(+), 91 deletions(-) delete mode 100644 workflow/schema/case.yaml delete mode 100644 workflow/schema/chgres.yaml diff --git a/workflow/defaults/case.yaml b/workflow/defaults/case.yaml index 62ce042292..e06cedfe0c 100644 --- a/workflow/defaults/case.yaml +++ b/workflow/defaults/case.yaml @@ -3,13 +3,6 @@ # of the case files, default files, platform file, and everywhere # else, and applies any validation from the schema/ directory. -fv3_settings: !Immediate - - !MergeMapping - - CDUMP: gfs - Template: *fv3_settings_template - - !calc doc.fv3_defaults - - !calc doc.case.get('fv3_settings',{}) - ocn_settings: !Immediate - !MergeMapping - CDUMP: gfs @@ -32,7 +25,6 @@ schedvar: !Immediate fv3_gfs_settings: !Immediate - !MergeMapping - - !calc doc.fv3_settings - CDUMP: gfs Template: *fv3_settings_template - !calc doc.fv3_gfs_defaults @@ -41,32 +33,31 @@ fv3_gfs_settings: !Immediate fv3_enkf_settings: !Immediate - !MergeMapping - - !calc doc.fv3_settings - - !calc doc.fv3_enkf_defaults - CDUMP: gdas Template: *fv3_settings_template + - !calc doc.fv3_enkf_defaults - !calc doc.case.get('fv3_enkf_settings',{}) - !calc doc.get('user_fv3_enkf_settings',{}) fv3_gdas_settings: !Immediate - !MergeMapping - - !calc doc.fv3_settings - CDUMP: gdas Template: *fv3_settings_template - !calc doc.fv3_gdas_defaults - !calc doc.case.get('fv3_gdas_settings',{}) - - !calc doc.get('user_fv3_gfs_settings',{}) + - !calc doc.get('user_fv3_gdas_settings',{}) -gfs_output_settings: !Immediate +output_settings: !Immediate - !MergeMapping - - !calc doc.gfs_output_settings_defaults - - { Template: *gfs_output_settings_template } - - !calc doc.case.get('gfs_output_settings',{}) - - !calc doc.get('user_gfs_output_settings',{}) + - Template: *output_settings_template + - !calc doc.output_settings_defaults + - !calc doc.case.get('output_settings',{}) + - !calc doc.get('user_output_settings',{}) data_assimilation: !Immediate - !MergeMapping - { Template: *data_assimilation_template } + - !calc doc.data_assimilation_defaults - !calc doc.case.get('data_assimilation',{}) - !calc doc.get('user_data_assimilation',{}) @@ -101,6 +92,7 @@ places: !Immediate nsst: !Immediate - !MergeMapping - Template: *nsst_schema + - !calc doc.nsst_defaults - !calc doc.case.get('nsst',{}) - !calc doc.get('user_nsst',{}) @@ -119,6 +111,7 @@ settings: !Immediate archiving: !Immediate - !MergeMapping - Template: *archive_settings_template + - !calc doc.archiving_defaults - !calc doc.case.get('archiving',{}) - !calc doc.get('user_archiving',{}) @@ -129,11 +122,10 @@ suite_overrides: !Immediate - !calc doc.get('user_suite_overrides',[]) validate_me: - - fv3_settings - fv3_gfs_settings - fv3_enkf_settings - fv3_gdas_settings - - gfs_output_settings + - output_settings - data_assimilation - post - downstream diff --git a/workflow/defaults/downstream.yaml b/workflow/defaults/downstream.yaml index d9ba91a7eb..ab1f8b6647 100644 --- a/workflow/defaults/downstream.yaml +++ b/workflow/defaults/downstream.yaml @@ -1,4 +1,6 @@ downstream_defaults: &downstream_defaults + CDUMPFCST: gdas + CDFNL: gdas DO_POST_PROCESSING: NO DO_BUFRSND: NO DO_GEMPAK: NO @@ -6,6 +8,10 @@ downstream_defaults: &downstream_defaults DO_FAX: NO DO_WAFS: NO DO_BULLETINS: NO + FHOUT_CYCLONE_GFS: 6 + FHOUT_CYCLONE_GDAS: 3 + MKPGB4PRCP: yes + VDUMP: gfs VRFYFITS: NO VSDB_STEP1: NO VSDB_STEP2: NO diff --git a/workflow/defaults/post.yaml b/workflow/defaults/post.yaml index 4bb05e63b0..b3588fa7a5 100644 --- a/workflow/defaults/post.yaml +++ b/workflow/defaults/post.yaml @@ -1,7 +1,21 @@ # default settings for post jobs post_defaults: &post_defaults + GOESF: yes + GTGF: no + FLXF: yes + PGB1F: yes + GFS_DOWNSTREAM: yes + downset: 1 NPOSTGRP: 5 + master_grid: "0p25deg" ocnpost_defaults: &ocnpost_defaults + GOESF: yes + GTGF: no + FLXF: yes + PGB1F: yes + GFS_DOWNSTREAM: yes + downset: 2 NPOSTGRP: 1 + master_grid: "0p25deg" diff --git a/workflow/schema/case.yaml b/workflow/schema/case.yaml deleted file mode 100644 index 3ee39bbffe..0000000000 --- a/workflow/schema/case.yaml +++ /dev/null @@ -1,31 +0,0 @@ -case_template: !Template &case_template - gfs_cyc: - type: int - default: 2 - allowed: [ 0, 1, 2, 4 ] - description: | - When to run GFS forecast. Data assimilation is run for every - cycle regardless of these values - * 0: no GFS cycle - * 1: 00Z only - * 2: 00Z and 12Z only - * 4: all 4 cycles (0, 6, 12, 18 Z) - - SDATE: - type: datetime - description: | - First cycle to run. In the cycled workflow, this is a - "half-cycle" in that it only runs the parts of the workflow that - do not require a prior cycle. The first "real" cycle is the - following cycle. - - EDATE: - type: datetime - description: Last cycle to run GDAS. - - experiment_name: - type: string - default: !calc doc.experiment_name - description: | - User-defined experiment name; should be a-z followed by alphanumeric. - Formerly known as PSLOT. diff --git a/workflow/schema/chgres.yaml b/workflow/schema/chgres.yaml deleted file mode 100644 index 4de42b7a6d..0000000000 --- a/workflow/schema/chgres.yaml +++ /dev/null @@ -1,10 +0,0 @@ -chgres_template: !Template &chgres_template - CHGRESVARS_ENKF: - type: string - default: "use_ufo=.true.,nopdpvv=.true." - - CHGRESTHREAD: - type: int - default: 12 - description: Number of threads to use for chgres - diff --git a/workflow/schema/downstream.yaml b/workflow/schema/downstream.yaml index bc936f8b6b..816a6e1fbd 100644 --- a/workflow/schema/downstream.yaml +++ b/workflow/schema/downstream.yaml @@ -8,83 +8,63 @@ downstream_schema: &downstream_schema !Template VDUMP: type: string - default: "gfs" description: verifying dump CDUMPFCST: type: string - default: "gdas" description: Fit-to-obs with GDAS/GFS prepbufr CDFNL: type: string - default: "gdas" description: Scores verification against GDAS/GFS analysis MKPGB4PRCP: type: bool - default: yes description: make 0.25-deg pgb files in ARCDIR for precip verification VRFYFITS: type: bool - default: YES description: "Fit to observations" VSDB_STEP1: type: bool - default: YES description: "populate VSDB database" VSDB_STEP2: type: bool - default: NO VRFYG2OBS: type: bool - default: YES description: "Grid to observations, see note below if turning ON" VRFYPRCP: type: bool - default: YES description: "Precip threat scores" VRFYRAD: type: bool - default: YES description: "Radiance data assimilation monitoring" VRFYOZN: type: bool - default: YES description: "Ozone data assimilation monitoring" VRFYMINMON: type: bool - default: YES description: "GSI minimization monitoring" VRFYTRAK: type: bool - default: YES description: "Hurricane track verification" VRFYGENESIS: type: bool - default: YES description: "Cyclone genesis verification" RUNMOS: type: bool - default: YES description: "Run GFS MOS" DO_POST_PROCESSING: type: bool - default: NO description: "Run post processing tasks (BUFRSND, GEMPAK, AWIPS, FAX, WAFS, BULLETINS" DO_BUFRSND: type: bool - default: NO description: "Run GFS_POSTSND" DO_GEMPAK: type: bool - default: NO description: "Run GEMPAK" DO_AWIPS: type: bool - default: NO description: "Run AWIPS" DO_FAX: type: bool - default: NO description: "Run FAX" DO_WAFS: type: bool @@ -92,12 +72,9 @@ downstream_schema: &downstream_schema !Template description: "Run WAFS" DO_BULLETINS: type: bool - default: NO description: "Run BULLETINS" FHOUT_CYCLONE_GFS: type: int - default: 6 FHOUT_CYCLONE_GDAS: type: int - default: 3 diff --git a/workflow/schema/post.yaml b/workflow/schema/post.yaml index 1d71b6ac10..1ce3862a7c 100644 --- a/workflow/schema/post.yaml +++ b/workflow/schema/post.yaml @@ -4,22 +4,18 @@ post_schema: &post_schema !Template GOESF: type: bool - default: yes description: make synthetic goes imagery GTGF: type: bool - default: no description: make gtg icing product FLXF: type: bool - default: yes description: grib2 flux file written by post - PGB1F: { type: bool, default: yes } - GFS_DOWNSTREAM: { type: bool, default: yes } - downset: { type: int, default: 1 } - NPOSTGRP: { type: int, default: 5 } + PGB1F: { type: bool } + GFS_DOWNSTREAM: { type: bool } + downset: { type: int } + NPOSTGRP: { type: int } master_grid: type: string - default: "0p25deg" allowed: [ "1deg", "0p5deg", "0p25deg", "0p125deg" ] description: Original grid of the post From 2068e438e959be3342b89a71620c9b0e0b3747a0 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 6 Mar 2020 19:40:23 +0000 Subject: [PATCH 08/91] move all default values into /defaults from /schema It's better if we have one place to manage default values for configurable variables other than two Default values only for reference. Please throughly test to make sure it could reproduce. --- workflow/cases/coupled_free_forecast.yaml | 23 +- workflow/config/base.yaml | 38 ++-- workflow/config/fcst.yaml | 44 ++-- workflow/config/fv3.yaml | 60 +++--- workflow/defaults/archiving.yaml | 10 + workflow/defaults/data_assimilation.yaml | 37 ++++ workflow/defaults/default_resources.yaml | 4 +- workflow/defaults/fv3.yaml | 15 -- workflow/defaults/fv3_enkf.yaml | 201 ++++++++++++++--- workflow/defaults/fv3_gdas.yaml | 156 +++++++++++++- workflow/defaults/fv3_gfs.yaml | 158 +++++++++++++- workflow/defaults/gfs_output_settings.yaml | 7 - workflow/defaults/nsst.yaml | 8 + workflow/defaults/output_settings.yaml | 38 ++++ workflow/defaults/places.yaml | 12 ++ workflow/defaults/settings.yaml | 14 +- workflow/layout/cycled_gfs.yaml | 14 +- workflow/layout/free_forecast_gfs.yaml | 6 +- workflow/layout/nco.yaml | 14 +- workflow/layout/public_release_v1.yaml | 2 +- workflow/schema/archiving.yaml | 9 - workflow/schema/data_assimilation.yaml | 44 +--- workflow/schema/downstream.yaml | 1 - workflow/schema/fv3.yaml | 240 +++------------------ workflow/schema/ice.yaml | 1 - workflow/schema/nsst.yaml | 6 - workflow/schema/ocn.yaml | 1 - workflow/schema/output.yaml | 35 +-- workflow/schema/places.yaml | 28 +-- workflow/schema/post.yaml | 2 +- workflow/schema/settings.yaml | 54 +---- workflow/top.yaml | 4 +- 32 files changed, 760 insertions(+), 526 deletions(-) create mode 100644 workflow/defaults/archiving.yaml create mode 100644 workflow/defaults/data_assimilation.yaml delete mode 100644 workflow/defaults/fv3.yaml delete mode 100644 workflow/defaults/gfs_output_settings.yaml create mode 100644 workflow/defaults/nsst.yaml create mode 100644 workflow/defaults/output_settings.yaml diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 31b575a004..3303f6c084 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -1,9 +1,4 @@ case: - fv3_settings: - nst_anl: False - hord_mt_nh_nonmono: 5 - hord_xx_nh_nonmono: 5 - places: workflow_file: layout/free_forecast_gfs.yaml MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS @@ -21,7 +16,7 @@ case: nsst: NST_MODEL: 0 - gfs_output_settings: + output_settings: OCN_INTERVAL: 24 FHOUT_GFS: 6 FHMIN_GFS: 0 @@ -33,16 +28,16 @@ case: CASE: C384 LEVS: 65 DELTIM: 450 - layout_x: 6 - layout_y: 8 - fv3_threads: 2 - WRITE_GROUP: 1 - WRTTASK_PER_GROUP: 24 - WRTIOBUF: "32M" + nst_anl: no + layout: + x: 6 + y: 8 + nth: 2 + WGRP: 1 + WGRP_NTASKS: 24 + WRTIOBUF: "32M" OCNPETS: 120 ICEPETS: 48 - hord_mt_nh_nonmono: 5 - hord_xx_nh_nonmono: 5 cdmbgwd: "1.0,1.2" post: diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index afafeb1dbe..ac646f4404 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -158,7 +158,7 @@ config_base: #export COMOUTwmo="$ROTDIR/$CDUMP.$PDY/$cyc/wmo" # Resolution specific parameters - export LEVS={doc.fv3_settings.LEVS} + export LEVS={doc.fv3_gfs_settings.LEVS} export CASE="{doc.fv3_gfs_settings.CASE}" export CASE_ENKF="{doc.fv3_enkf_settings.CASE}" @@ -171,30 +171,30 @@ config_base: fi # Output frequency of the forecast model (for cycling) - export FHMIN={doc.gfs_output_settings.FHMIN_GDAS} - export FHMAX={doc.gfs_output_settings.FHMAX_GDAS} - export FHOUT={doc.gfs_output_settings.FHOUT_GDAS} + export FHMIN={doc.output_settings.FHMIN_GDAS} + export FHMAX={doc.output_settings.FHMAX_GDAS} + export FHOUT={doc.output_settings.FHOUT_GDAS} # GFS cycle info export gfs_cyc={doc.settings.gfs_cyc} # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles. # GFS output and frequency - export FHMIN_GFS={doc.gfs_output_settings.FHMIN_GFS} - export FHMAX_GFS={doc.gfs_output_settings.FHMAX_GFS} - export FHOUT_GFS={doc.gfs_output_settings.FHOUT_GFS} - export FHMAX_HF_GFS={doc.gfs_output_settings.FHMAX_HF_GFS} - export FHOUT_HF_GFS={doc.gfs_output_settings.FHOUT_HF_GFS} - export FHRLST="{doc.gfs_output_settings.gfs_forecast_hours}" + export FHMIN_GFS={doc.output_settings.FHMIN_GFS} + export FHMAX_GFS={doc.output_settings.FHMAX_GFS} + export FHOUT_GFS={doc.output_settings.FHOUT_GFS} + export FHMAX_HF_GFS={doc.output_settings.FHMAX_HF_GFS} + export FHOUT_HF_GFS={doc.output_settings.FHOUT_HF_GFS} + export FHRLST="{doc.output_settings.gfs_forecast_hours}" # I/O QUILTING, true--use Write Component; false--use GFDL FMS # if quilting=true, choose OUTPUT_GRID as cubed_sphere_grid in netcdf or gaussian_grid # if gaussian_grid, set OUTPUT_FILE for nemsio or netcdf - export QUILTING="{tools.fort(doc.fv3_settings.QUILTING)}" - export OUTPUT_GRID="{doc.gfs_output_settings.OUTPUT_GRID}" - export OUTPUT_FILE="{doc.gfs_output_settings.OUTPUT_FILE_TYPE}" + export QUILTING="{tools.fort(doc.fv3_gdas_settings.QUILTING)}" + export OUTPUT_GRID="{doc.output_settings.OUTPUT_GRID}" + export OUTPUT_FILE="{doc.output_settings.OUTPUT_FILE_TYPE}" # Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL - export imp_physics={doc.fv3_settings.imp_physics} + export imp_physics={doc.fv3_gfs_settings.imp_physics} # Shared parameters # Hybrid related @@ -206,20 +206,20 @@ config_base: # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then - export FHMIN_ENKF={doc.gfs_output_settings.FHMIN_ENKF} - export FHMAX_ENKF={doc.gfs_output_settings.FHMAX_ENKF} - export FHOUT_ENKF={doc.gfs_output_settings.FHOUT_ENKF} + export FHMIN_ENKF={doc.output_settings.FHMIN_ENKF} + export FHMAX_ENKF={doc.output_settings.FHMAX_ENKF} + export FHOUT_ENKF={doc.output_settings.FHOUT_ENKF} if [ $l4densvar = ".true." ]; then export FHOUT=1 fi fi # If YES, NSST is turned on in anal and/or fcst steps - export DONST="{tools.YES_NO(doc.fv3_settings.DONST)}" + export DONST="{tools.YES_NO(doc.fv3_gdas_settings.DONST)}" if [ $DONST = "YES" ]; then export FNTSFA=" "; fi # The switch to apply SST elevation correction or not - export nst_anl={tools.fort(doc.fv3_settings.nst_anl)} + export nst_anl={tools.fort(doc.fv3_gfs_settings.nst_anl)} # Analysis increments to zero in CALCINCEXEC export INCREMENTS_TO_ZERO="{tools.join(doc.data_assimilation.INCREMENTS_TO_ZERO,',')}" diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 7c14856d4f..f15ed81d28 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -9,18 +9,18 @@ config_fcst: do: "nems_fv3_mom6_cice5.x" - otherwise: "global_fv3gfs.x" more_exports_for_microphys: !FirstTrue - - when: !calc ( doc.fv3_settings.imp_physics==11 ) + - when: !calc ( doc.fv3_gdas_settings.imp_physics==11 ) do: !expand | - export hord_mt_nh_nonmono={doc.fv3_settings.hord_mt_nh_nonmono} - export hord_xx_nh_nonmono={doc.fv3_settings.hord_xx_nh_nonmono} - export vtdm4_nh_nonmono={doc.fv3_settings.vtdm4_nh_nonmono} - export nord={doc.fv3_settings.nord} - export dddmp={doc.fv3_settings.dddmp} - export d4_bg={doc.fv3_settings.d4_bg} + export hord_mt_nh_nonmono={doc.fv3_gdas_settings.phy_dependent_var.hord_mt_nh_nonmono} + export hord_xx_nh_nonmono={doc.fv3_gdas_settings.phy_dependent_var.hord_xx_nh_nonmono} + export vtdm4_nh_nonmono={doc.fv3_gdas_settings.phy_dependent_var.vtdm4_nh_nonmono} + export nord={doc.fv3_gdas_settings.phy_dependent_var.nord} + export dddmp={doc.fv3_gdas_settings.phy_dependent_var.dddmp} + export d4_bg={doc.fv3_gdas_settings.phy_dependent_var.d4_bg} - otherwise: "" level_127: !FirstTrue - - when: !calc doc.fv3_settings.LEVS==128 + - when: !calc doc.fv3_gdas_settings.LEVS==128 do: !expand | export tau=5.0 export rf_cutoff=1.0e3 @@ -60,8 +60,8 @@ config_fcst: export npe_fcst="{resource_a[0].mpi_ranks}" export npe_fcst_gfs="{resource_b[0].mpi_ranks}" export npe_node_fcst="{resource_a[0].max_ppn}" - export nth_fcst="{doc.fv3_gfs_settings.fv3_threads}" - export NTHREADS_FV3="{doc.fv3_gfs_settings.fv3_threads}" + export nth_fcst="{doc.fv3_gfs_settings.layout.nth}" + export NTHREADS_FV3="{doc.fv3_gfs_settings.layout.nth}" export memory_fcst="1024M" ####################################################################### @@ -83,24 +83,24 @@ config_fcst: export FCSTEXEC="{FCSTEXEC}" # Model configuration - export TYPE="{doc.fv3_settings.nh_type}" - export MONO="{doc.fv3_settings.MONO}" + export TYPE="{doc.fv3_gdas_settings.nh_type}" + export MONO="{doc.fv3_gdas_settings.MONO}" # Use stratosphere h2o physics - export h2o_phys="{tools.fort(doc.fv3_settings.h2o_phys)}" + export h2o_phys="{tools.fort(doc.fv3_gdas_settings.h2o_phys)}" # Options of stratosphere O3 physics reaction coefficients - export new_o3forc="{tools.YES_NO(doc.fv3_settings_template.new_o3force)}" + export new_o3forc="{tools.YES_NO(doc.fv3_gdas_settings.new_o3force)}" # Microphysics configuration - export dnats={doc.fv3_settings.dnats} - export cal_pre="{tools.fort(doc.fv3_settings.cal_pre)}" - export do_sat_adj="{tools.fort(doc.fv3_settings.do_sat_adj)}" - export random_clds="{tools.fort(doc.fv3_settings.random_clds)}" - #export cnvcld="{tools.fort(doc.fv3_settings.cnvcld)}" - export ncld={doc.fv3_settings.ncld} - export FIELD_TABLE="{doc.fv3_settings.FIELD_TABLE}" - export nwat={doc.fv3_settings.nwat} + export dnats={doc.fv3_gfs_settings.phy_dependent_var.dnats} + export cal_pre="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.cal_pre)}" + export do_sat_adj="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.do_sat_adjust)}" + export random_clds="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.random_clds)}" + #export cnvcld="{tools.fort(doc.fv3_gdas_settings.cnvcld)}" + export ncld={doc.fv3_gfs_settings.phy_dependent_var.ncld} + export FIELD_TABLE="{doc.fv3_gdas_settings.phy_dependent_var.FIELD_TABLE}" + export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} {more_exports_for_microphys} {level_127} diff --git a/workflow/config/fv3.yaml b/workflow/config/fv3.yaml index cfe7bfa550..c8d173fce6 100644 --- a/workflow/config/fv3.yaml +++ b/workflow/config/fv3.yaml @@ -43,57 +43,57 @@ config_fv3: forecast_mode=$( echo "$1" | tr a-z A-Z ) case $forecast_mode in - "GFS") + "gfs") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_gfs_settings.DELTIM} - export layout_x={doc.fv3_gfs_settings.layout_x} - export layout_y={doc.fv3_gfs_settings.layout_y} - export layout_x_gfs={doc.fv3_gfs_settings.layout_x} - export layout_y_gfs={doc.fv3_gfs_settings.layout_y} + export layout_x={doc.fv3_gfs_settings.layout.x} + export layout_y={doc.fv3_gfs_settings.layout.y} + export layout_x_gfs={doc.fv3_gfs_settings.layout.x} + export layout_y_gfs={doc.fv3_gfs_settings.layout.y} export npe_node_fcst={doc.partition_common.resources.run_gdasfcst[0].max_ppn} export nth_fv3=2 export npe_fv3={doc.partition_common.resources.run_gdasfcst[0].mpi_ranks} export cdmbgwd={doc.fv3_gfs_settings.cdmbgwd} # mountain blocking and gravity wave drag - export WRITE_GROUP={doc.fv3_gfs_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP={doc.fv3_gfs_settings.WRTTASK_PER_GROUP} - export WRITE_GROUP_GFS={doc.fv3_gfs_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP_GFS={doc.fv3_gfs_settings.WRTTASK_PER_GROUP} - export WRTIOBUF={doc.fv3_gfs_settings.WRTIOBUF} + export WRITE_GROUP={doc.fv3_gfs_settings.layout.WGRP} + export WRTTASK_PER_GROUP={doc.fv3_gfs_settings.layout.WGRP_NTASKS} + export WRITE_GROUP_GFS={doc.fv3_gfs_settings.layout.WGRP} + export WRTTASK_PER_GROUP_GFS={doc.fv3_gfs_settings.layout.WGRP_NTASKS} + export WRTIOBUF={doc.fv3_gfs_settings.layout.WRTIOBUF} ;; - "GDAS") + "gdas") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_gdas_settings.DELTIM} - export layout_x={doc.fv3_gdas_settings.layout_x} - export layout_y={doc.fv3_gdas_settings.layout_y} - export layout_x_gfs={doc.fv3_gdas_settings.layout_x} - export layout_y_gfs={doc.fv3_gdas_settings.layout_y} + export layout_x={doc.fv3_gdas_settings.layout.x} + export layout_y={doc.fv3_gdas_settings.layout.y} + export layout_x_gfs={doc.fv3_gdas_settings.layout.x} + export layout_y_gfs={doc.fv3_gdas_settings.layout.y} export npe_node_fcst={doc.partition_common.resources.run_gdasfcst[0].max_ppn} export nth_fv3=2 export npe_fv3={doc.partition_common.resources.run_gdasfcst[0].mpi_ranks} export cdmbgwd={doc.fv3_gdas_settings.cdmbgwd} - export WRITE_GROUP={doc.fv3_gdas_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP={doc.fv3_gdas_settings.WRTTASK_PER_GROUP} - export WRITE_GROUP_GFS={doc.fv3_gdas_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP_GFS={doc.fv3_gdas_settings.WRTTASK_PER_GROUP} - export WRTIOBUF={doc.fv3_gdas_settings.WRTIOBUF} + export WRITE_GROUP={doc.fv3_gdas_settings.layout.WGRP} + export WRTTASK_PER_GROUP={doc.fv3_gdas_settings.layout.WGRP_NTASKS} + export WRITE_GROUP_GFS={doc.fv3_gdas_settings.layout.WGRP} + export WRTTASK_PER_GROUP_GFS={doc.fv3_gdas_settings.layout.WGRP_NTASKS} + export WRTIOBUF={doc.fv3_gdas_settings.layout.WRTIOBUF} ;; - "ENKF") + "enkf") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_enkf_settings.DELTIM} - export layout_x={doc.fv3_enkf_settings.layout_x} - export layout_y={doc.fv3_enkf_settings.layout_y} - export layout_x_gfs={doc.fv3_enkf_settings.layout_x} - export layout_y_gfs={doc.fv3_enkf_settings.layout_y} + export layout_x={doc.fv3_enkf_settings.layout.x} + export layout_y={doc.fv3_enkf_settings.layout.y} + export layout_x_gfs={doc.fv3_enkf_settings.layout.x} + export layout_y_gfs={doc.fv3_enkf_settings.layout.y} export npe_node_fcst={doc.partition_common.resources.run_efcs[0].max_ppn} export nth_fv3=2 export npe_fv3={doc.partition_common.resources.run_efcs[0].mpi_ranks} export cdmbgwd={doc.fv3_enkf_settings.cdmbgwd} - export WRITE_GROUP={doc.fv3_enkf_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP={doc.fv3_enkf_settings.WRTTASK_PER_GROUP} - export WRITE_GROUP_GFS={doc.fv3_enkf_settings.WRITE_GROUP} - export WRTTASK_PER_GROUP_GFS={doc.fv3_enkf_settings.WRTTASK_PER_GROUP} - export WRTIOBUF={doc.fv3_enkf_settings.WRTIOBUF} + export WRITE_GROUP={doc.fv3_enkf_settings.layout.WGRP} + export WRTTASK_PER_GROUP={doc.fv3_enkf_settings.layout.WGRP_NTASKS} + export WRITE_GROUP_GFS={doc.fv3_enkf_settings.layout.WGRP} + export WRTTASK_PER_GROUP_GFS={doc.fv3_enkf_settings.layout.WGRP_NTASKS} + export WRTIOBUF={doc.fv3_enkf_settings.layout.WRTIOBUF} ;; *) echo "CDUMP undefined!" diff --git a/workflow/defaults/archiving.yaml b/workflow/defaults/archiving.yaml new file mode 100644 index 0000000000..9d227a2297 --- /dev/null +++ b/workflow/defaults/archiving.yaml @@ -0,0 +1,10 @@ +archiving_defaults: &archiving_defaults + archive_to_hpss: yes + arch_cyc: 18 + arch_warmicfreq: 6 + arch_fcsticfreq: 3 + copy_fit2obs_files: yes + scrub_in_archive: yes + scrub_in_archive_start: 144 + scrub_in_archive_end: 24 + ATARDIR: "/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" diff --git a/workflow/defaults/data_assimilation.yaml b/workflow/defaults/data_assimilation.yaml new file mode 100644 index 0000000000..43654dbac6 --- /dev/null +++ b/workflow/defaults/data_assimilation.yaml @@ -0,0 +1,37 @@ +data_assimilation_defaults: &data_assimilation_defaults + DOHYBVAR: YES + NMEM_ENKF: 80 + NMEM_EOMGGRP: 10 + NMEM_EFCSGRP: 10 + NMEM_EARCGRP: 10 + RECENTER_ENKF: YES + SMOOTH_ENKF: YES + assim_freq: 6 + l4densvar: YES + lwrite4danl: NO + + NSPLIT: 4 + NAM_ENKF: "analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" + INCREMENTS_TO_ZERO: [ delz_inc, clwmr_inc, icmr_inc ] + PREP_REALTIME: no + DO_EMCSFC: NO + PROCESS_TROPCY: no + DO_RELOCATE: no + DO_MAKEPREPBUFR: YES + OPREFIX: "$CDUMP.$cycle." + COM_OBS: "$DMPDIR" + COMIN_OBS: !FirstTrue + - when: !calc ( COM_OBS=="$DMPDIR" ) + do: "$DMPDIR/$CDATE/$CDUMP$DUMP_SUFFIX" + - when: !calc ( COM_OBS=="$COMROOT" ) + do: "$COMROOT/$CDUMP.$PDY/$CYC" + - otherwise: !error "Unknown COM_OBS value: {COM_OBS}" + RERUN_EFCSGRP: NO + RERUN_EOMGGRP: YES + GENDIAG: YES + NEPOSGRP: 7 + OBSINPUT_INVOBS: "dmesh(1)=225.0,dmesh(2)=225.0" + OBSQC_INVOBS: "tcp_width=60.0,tcp_ermin=2.0,tcp_ermax=12.0" + ENKF_INNOVATE_GROUPS: !calc ( NMEM_ENKF // NMEM_EOMGGRP ) + ENKF_FORECAST_GROUPS: !calc ( NMEM_ENKF // NMEM_EFCSGRP ) + ENKF_ARCHIVE_GROUPS: !calc ( NMEM_ENKF // NMEM_EARCGRP ) diff --git a/workflow/defaults/default_resources.yaml b/workflow/defaults/default_resources.yaml index da42441c7f..3b41ebbbca 100644 --- a/workflow/defaults/default_resources.yaml +++ b/workflow/defaults/default_resources.yaml @@ -308,7 +308,7 @@ default_resources: &default_resources - batch_memory: "1024M" mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn - OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.fv3_threads + OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_wall memory_per_rank: !icalc doc.gfs_resource_table.get('gfsfcst_mem_per_rank',None) @@ -316,7 +316,7 @@ default_resources: &default_resources - batch_memory: "1024M" mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn - OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.fv3_threads + OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_medcold_wall memory_per_rank: !icalc doc.gfs_resource_table.get('gfsfcst_mem_per_rank',None) diff --git a/workflow/defaults/fv3.yaml b/workflow/defaults/fv3.yaml deleted file mode 100644 index 4363267e25..0000000000 --- a/workflow/defaults/fv3.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# default settings for fv3 core - -fv3_defaults: &fv3_defaults - CASE: C384 - LEVS: 65 - DELTIM: 450 - layout_x: 6 - layout_y: 8 - fv3_threads: 2 - cdmbgwd: "3.5,0.25" - WRITE_GROUP: 1 - WRTTASK_PER_GROUP: 24 - WRTIOBUF: "32M" - OCNPETS: 120 - ICEPETS: 48 diff --git a/workflow/defaults/fv3_enkf.yaml b/workflow/defaults/fv3_enkf.yaml index 85e53a6fe8..fdbf459abe 100644 --- a/workflow/defaults/fv3_enkf.yaml +++ b/workflow/defaults/fv3_enkf.yaml @@ -1,32 +1,32 @@ -# This file is used to configure the ENKF-related config files. The -# ENKF is not included in this release, so these settings are not -# needed. However, they do need to be set to valid values because -# there is validation of the fv3_enkf_settings variables elsewhere in -# the YAML documents. - fv3_enkf_defaults: &fv3_enkf_defaults - QUILTING: True - layout_x: 4 - layout_y: 6 - ATMPETS: !FirstTrue - - when: !calc doc.fv3_enkf_settings.QUILTING - do: !calc layout_x * layout_y * 6 + WRITE_GROUP * WRTTASK_PER_GROUP - - otherwise: !calc layout_x * layout_y * 6 - - FHSWR: 3600. - FHLWR: 3600. - IEMS: 1 - ISOL: 2 - IAER: 111 - ICO2: 2 - dspheat: YES - shal_cnv: NO - FHZER: 6 + CDUMP: gdas + CASE: C192 + LEVS: 65 FHCYC: 1 - restart_interval: 6 + FHCYC_GDAS: 1 + FHCYC_GFS: 24 + FHSWR: 3600 + FHLWR: 3600 + FHZER: 6 FHMAX: 6 + QUILTING: True + WRITE_NEMSIOFILE: YES + WRITE_NEMSIOFLIP: yes + nst_anl: yes + lprecip_accu: yes + DONST: YES + MONO: "non-mono" + MEMBER: -1 + d4_bg: 0.15 + dddmp: 0.2 + ISEED: 0 + SET_STP_SEED: YES + + DO_SHUM: YES + SHUM: 0.005 + SHUM_TAU: 21600. + SHUM_LSCALE: 500000. -# Stochastic physics parameters (only for ensemble forecasts) DO_SKEB: YES SKEB: 0.3 SKEB_TAU: 21600. @@ -34,20 +34,157 @@ fv3_enkf_defaults: &fv3_enkf_defaults SKEBNORM: 0 SKEB_NPASS: 30 SKEB_VDOF: 5 - DO_SHUM: YES - SHUM: 0.005 - SHUM_TAU: 21600. - SHUM_LSCALE: 500000. + DO_SPPT: YES - DOIAU_ENKF: NO - IAUFHRS_ENKF: 6 - IAU_DELTHRS_ENKF: 6 SPPT: 0.5 SPPT_TAU: 21600. SPPT_LSCALE: 500000. SPPT_LOGIT: YES SPPT_SFCLIMIT: YES + DOIAU_ENKF: NO + IAUFHRS_ENKF: 6 + IAU_DELTHRS_ENKF: 6 + k_split: 1 n_split: 12 + + RUN_EFCSGRP: NO + zhao_mic: YES + nh_type: 'nh' + USE_COUPLER_RES: NO + cdmbgwd: !FirstTrue + - when: !calc CASE=="C48" + do: "0.071,2.1,1.0,1.0" + - when: !calc CASE=="C96" + do: "0.14,1.8,1.0,1.0" + - when: !calc CASE=="C192" + do: "0.23,1.5,1.0,1.0" + - when: !calc CASE=="C384" + do: "1.1,0.72,1.0,1.0" + - when: !calc CASE=="C768" + do: "4.0,0.15,1.0,1.0" + - when: !calc CASE=="C1152" + do: "4.0,0.10,1.0,1.0" + - when: !calc CASE=="C3072" + do: "4.0,0.05,1.0,1.0" + - otherwise: "" + message: "Newly defined CASE, please make sure cdmbgwd is set correctly in case file under fv3_enkf_settings!" + + DELTIM: !FirstTrue + - when: !calc CASE=="C384" + do: 240 + - when: !calc CASE=="C768" + do: 225 + - when: !calc CASE=="C1152" + do: 150 + - when: !calc CASE=="C3072" + do: 90 + - otherwise: 450 + + layout: !Select + select: !calc CASE + otherwise: !error "Unknown FV3 deterministic grid: {doc.fv3_enkf_settings.CASE}" + cases: + C48: { x: 2,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C96: { x: 4,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C192: { x: 4, y: 6, nth: 2, WGRP: 2, WGRP_NTASKS: 24, WRTIOBUF: "8M" } + C384: { x: 6, y: 6, nth: 2, WGRP: 3, WGRP_NTASKS: 24, WRTIOBUF: "16M" } + C768: { x: 8, y: 16, nth: 2, WGRP: 4, WGRP_NTASKS: 60, WRTIOBUF: "32M" } + C1152: { x: 8, y: 16, nth: 4, WGRP: 4, WGRP_NTASKS: 84, WRTIOBUF: "48M" } + C3072: { x: 16,y: 32, nth: 4, WGRP: 4, WGRP_NTASKS: 120, WRTIOBUF: "64M" } +# layout_x: layout.x +# layout_y: layout.y +# fv3_thread: layout.nth +# WRITE_GROUP: layout.WGRP +# WRTTASK_PER_GROUP: layout.WGRP_NTASKS +# WRTIOBUF: layout.WRTIOBUF + + new_o3force: yes + h2o_phys: yes + do_vort_damp: yes + cnvcld: true consv_te: 1. + fv_sg_adj: 450 + dspheat: YES + shal_cnv: NO + agrid_vel_rst: yes + IEMS: 1 + IALB: 1 + ISOL: 2 + IAER: 111 + ICO2: 2 + warm_start: true + read_increment: no + restart_interval: 6 + imp_physics: "11" +# if_present: !FirstTrue +# - when: !calc ( imp_physics==99 ) +# do: +# ncld: 1 +# nwat: 2 + phy_dependent_var: !Select + select: !calc imp_physics + otherwise: !error "Unknown imp_physics option: {imp_physics} !" + cases: + "99": + ncld: 1 + nwat: 2 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "6": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_wsm6" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "8": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_thompson" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "11": + ncld: 5 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_gfdl_satmedmf" + dnats: 1 + cal_pre: false + do_sat_adjust: true + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + + ATMPETS: !FirstTrue + - when: !calc QUILTING + do: !calc layout.x * layout.y * 6 + layout.WGRP * layout.WGRP_NTASKS + - otherwise: !calc layout.x * layout.y * 6 diff --git a/workflow/defaults/fv3_gdas.yaml b/workflow/defaults/fv3_gdas.yaml index 416fc3b9b4..0d9900b6ea 100644 --- a/workflow/defaults/fv3_gdas.yaml +++ b/workflow/defaults/fv3_gdas.yaml @@ -1,6 +1,156 @@ fv3_gdas_defaults: &fv3_gdas_defaults + CDUMP: gdas + CASE: C384 + LEVS: 65 + FHCYC: 24 + FHCYC_GDAS: 1 + FHCYC_GFS: 24 QUILTING: True + WRITE_NEMSIOFILE: YES + WRITE_NEMSIOFLIP: yes + nst_anl: yes + lprecip_accu: yes + DONST: YES + MONO: "non-mono" + MEMBER: -1 + d4_bg: 0.15 + dddmp: 0.2 + ISEED: 0 + SET_STP_SEED: YES + DO_SHUM: NO + DO_SKEB: NO + DO_SPPT: NO + RUN_EFCSGRP: NO + zhao_mic: YES + nh_type: 'nh' + USE_COUPLER_RES: NO + cdmbgwd: !FirstTrue + - when: !calc CASE=="C48" + do: "0.071,2.1,1.0,1.0" + - when: !calc CASE=="C96" + do: "0.14,1.8,1.0,1.0" + - when: !calc CASE=="C192" + do: "0.23,1.5,1.0,1.0" + - when: !calc CASE=="C384" + do: "1.1,0.72,1.0,1.0" + - when: !calc CASE=="C768" + do: "4.0,0.15,1.0,1.0" + - when: !calc CASE=="C1152" + do: "4.0,0.10,1.0,1.0" + - when: !calc CASE=="C3072" + do: "4.0,0.05,1.0,1.0" + - otherwise: "" + message: "Newly defined CASE, please make sure cdmbgwd is set correctly in case file under fv3_gdas_settings!" + + DELTIM: !FirstTrue + - when: !calc CASE=="C384" + do: 240 + - when: !calc CASE=="C768" + do: 225 + - when: !calc CASE=="C1152" + do: 150 + - when: !calc CASE=="C3072" + do: 90 + - otherwise: 450 + + layout: !Select + select: !calc CASE + otherwise: !error "Unknown FV3 deterministic grid: {doc.fv3_gdas_settings.CASE}" + cases: + C48: { x: 2,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C96: { x: 4,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C192: { x: 4, y: 6, nth: 2, WGRP: 2, WGRP_NTASKS: 24, WRTIOBUF: "8M" } + C384: { x: 6, y: 6, nth: 2, WGRP: 3, WGRP_NTASKS: 24, WRTIOBUF: "16M" } + C768: { x: 8, y: 16, nth: 2, WGRP: 4, WGRP_NTASKS: 60, WRTIOBUF: "32M" } + C1152: { x: 8, y: 16, nth: 4, WGRP: 4, WGRP_NTASKS: 84, WRTIOBUF: "48M" } + C3072: { x: 16,y: 32, nth: 4, WGRP: 4, WGRP_NTASKS: 120, WRTIOBUF: "64M" } +# layout_x: layout.x +# layout_y: layout.y +# fv3_thread: layout.nth +# WRITE_GROUP: layout.WGRP +# WRTTASK_PER_GROUP: layout.WGRP_NTASKS +# WRTIOBUF: layout.WRTIOBUF + + new_o3force: yes + h2o_phys: yes + do_vort_damp: yes + cnvcld: true + consv_te: 1. + fv_sg_adj: 450 + dspheat: YES + shal_cnv: YES + agrid_vel_rst: yes + IEMS: 1 + IALB: 1 + ISOL: 2 + IAER: 111 + ICO2: 2 + warm_start: true + read_increment: no + restart_interval: 6 + imp_physics: "11" + phy_dependent_var: !Select + select: !calc imp_physics + otherwise: !error "Unknown imp_physics option: {imp_physics} !" + cases: + "99": + ncld: 1 + nwat: 2 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "6": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_wsm6" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "8": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_thompson" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "11": + ncld: 5 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_gfdl_satmedmf" + dnats: 1 + cal_pre: false + do_sat_adjust: true + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + ATMPETS: !FirstTrue - - when: !calc doc.fv3_gdas_settings.QUILTING - do: !calc layout_x * layout_y * 6 + WRITE_GROUP * WRTTASK_PER_GROUP - - otherwise: !calc layout_x * layout_y * 6 + - when: !calc QUILTING + do: !calc layout.x * layout.y * 6 + layout.WGRP * layout.WGRP_NTASKS + - otherwise: !calc layout.x * layout.y * 6 diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index 7fd97d8b0f..f8cacbf154 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -1,6 +1,158 @@ fv3_gfs_defaults: &fv3_gfs_defaults + CDUMP: gfs + CASE: C384 + LEVS: 65 + FHCYC: 24 + FHCYC_GDAS: 1 + FHCYC_GFS: 24 QUILTING: True + WRITE_NEMSIOFILE: YES + WRITE_NEMSIOFLIP: yes + nst_anl: yes + lprecip_accu: yes + DONST: YES + MONO: "non-mono" + MEMBER: -1 + d4_bg: 0.15 + dddmp: 0.2 + ISEED: 0 + SET_STP_SEED: YES + DO_SHUM: NO + DO_SKEB: NO + DO_SPPT: NO + RUN_EFCSGRP: NO + zhao_mic: YES + nh_type: 'nh' + USE_COUPLER_RES: NO + cdmbgwd: !FirstTrue + - when: !calc CASE=="C48" + do: "0.071,2.1,1.0,1.0" + - when: !calc CASE=="C96" + do: "0.14,1.8,1.0,1.0" + - when: !calc CASE=="C192" + do: "0.23,1.5,1.0,1.0" + - when: !calc CASE=="C384" + do: "1.1,0.72,1.0,1.0" + - when: !calc CASE=="C768" + do: "4.0,0.15,1.0,1.0" + - when: !calc CASE=="C1152" + do: "4.0,0.10,1.0,1.0" + - when: !calc CASE=="C3072" + do: "4.0,0.05,1.0,1.0" + - otherwise: "" + message: "Newly defined CASE, please make sure cdmbgwd is set correctly in case file under fv3_gfs_settings!" + + DELTIM: !FirstTrue + - when: !calc CASE=="C384" + do: 240 + - when: !calc CASE=="C768" + do: 225 + - when: !calc CASE=="C1152" + do: 150 + - when: !calc CASE=="C3072" + do: 90 + - otherwise: 450 + + layout: !Select + select: !calc CASE + otherwise: !error "Unknown FV3 deterministic grid: {doc.fv3_gfs_settings.CASE}" + cases: + C48: { x: 2,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C96: { x: 4,y: 4, nth: 1, WGRP: 1, WGRP_NTASKS: 24, WRTIOBUF: "4M" } + C192: { x: 4, y: 6, nth: 2, WGRP: 2, WGRP_NTASKS: 24, WRTIOBUF: "8M" } + C384: { x: 6, y: 6, nth: 2, WGRP: 3, WGRP_NTASKS: 24, WRTIOBUF: "16M" } + C768: { x: 8, y: 16, nth: 2, WGRP: 4, WGRP_NTASKS: 60, WRTIOBUF: "32M" } + C1152: { x: 8, y: 16, nth: 4, WGRP: 4, WGRP_NTASKS: 84, WRTIOBUF: "48M" } + C3072: { x: 16,y: 32, nth: 4, WGRP: 4, WGRP_NTASKS: 120, WRTIOBUF: "64M" } +# layout_x: layout.x +# layout_y: layout.y +# fv3_thread: layout.nth +# WRITE_GROUP: layout.WGRP +# WRTTASK_PER_GROUP: layout.WGRP_NTASKS +# WRTIOBUF: layout.WRTIOBUF + + new_o3force: yes + h2o_phys: yes + do_vort_damp: yes + cnvcld: true + consv_te: 1. + fv_sg_adj: 450 + dspheat: YES + shal_cnv: YES + agrid_vel_rst: yes + IEMS: 1 + IALB: 1 + ISOL: 2 + IAER: 111 + ICO2: 2 + warm_start: true + read_increment: no + restart_interval: 6 + imp_physics: "11" + phy_dependent_var: !Select + select: !calc imp_physics + otherwise: !error "Unknown imp_physics option: {imp_physics} !" + cases: + "99": + ncld: 1 + nwat: 2 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "6": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_wsm6" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "8": + ncld: 2 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_thompson" + dnats: 0 + cal_pre: false + do_sat_adjust: false + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + "11": + ncld: 5 + nwat: 6 + FIELD_TABLE: "$HOMEgfs/parm/parm_fv3diag/field_table_gfdl_satmedmf" + dnats: 1 + cal_pre: false + do_sat_adjust: true + random_clds: false + hord_mt_nh_nonmono: 5 + hord_xx_nh_nonmono: 5 + vtdm4_nh_nonmono: 0.02 + nord: 2 + dddmp: 0.1 + d4_bg: 0.12 + ATMPETS: !FirstTrue - - when: !calc doc.fv3_gfs_settings.QUILTING - do: !calc layout_x * layout_y * 6 + WRITE_GROUP * WRTTASK_PER_GROUP - - otherwise: !calc layout_x * layout_y * 6 + - when: !calc QUILTING + do: !calc layout.x * layout.y * 6 + layout.WGRP * layout.WGRP_NTASKS + - otherwise: !calc layout.x * layout.y * 6 + OCNPETS: 120 + ICEPETS: 48 diff --git a/workflow/defaults/gfs_output_settings.yaml b/workflow/defaults/gfs_output_settings.yaml deleted file mode 100644 index 7b04d97dc2..0000000000 --- a/workflow/defaults/gfs_output_settings.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# This file sets default values for the GFS output settings. See -# schema/output.yaml for documentation. - -gfs_output_settings_defaults: &gfs_output_settings_defaults - FHMAX_GFS: 384 - FHOUT_GFS: 3 - OUTPUT_GRID: gaussian_grid diff --git a/workflow/defaults/nsst.yaml b/workflow/defaults/nsst.yaml new file mode 100644 index 0000000000..1ac6909398 --- /dev/null +++ b/workflow/defaults/nsst.yaml @@ -0,0 +1,8 @@ +nsst_defaults: &nsst_defaults + NST_MODEL: 2 + NST_RESV: 0 + ZSEA1: 0 + ZSEA2: 0 + NST_GSI: 3 + NSTINFO: 0 + NST_SPINUP: 0 diff --git a/workflow/defaults/output_settings.yaml b/workflow/defaults/output_settings.yaml new file mode 100644 index 0000000000..fad2f14d3f --- /dev/null +++ b/workflow/defaults/output_settings.yaml @@ -0,0 +1,38 @@ +# This file sets default values for the GFS output settings. See +# schema/output.yaml for documentation. + +output_settings_defaults: &output_settings_defaults + FHMIN_GFS: 0 + FHMAX_GFS: 384 + FHOUT_GFS: 3 + FHMIN_ENKF: 3 + FHMAX_ENKF: 9 + FHOUT_ENKF: !FirstTrue + - when: doc.data_assimilation.l4densvar + do: 1 + - otherwise: 3 + FHMIN_GDAS: 0 + FHMAX_GDAS: 9 + FHOUT_GDAS: 3 + + FHMAX_HF_GFS: 0 + FHOUT_HF_GFS: 1 + OCN_INTERVAL: 120 + + NCO_NAMING_CONV: YES + OUTPUT_FILE_TYPE: nemsio + OUTPUT_GRID: gaussian_grid + + gfs_forecast_hours: !calc >- + tools.uniq(sorted( + tools.seq(FHMIN_GFS,FHMAX_HF_GFS,FHOUT_HF_GFS) + + tools.seq(FHMIN_GFS,FHMAX_GFS, FHOUT_GFS))) + gdas_forecast_hours: !calc "tools.seq(FHMIN_GDAS,FHMAX_GDAS,FHOUT_GDAS)" + ocnpost_hours: !calc "tools.seq(FHMIN_GFS,FHMAX_GFS-OCN_INTERVAL,OCN_INTERVAL)" + enkf_epos_fhr: !calc "tools.seq(FHMIN_ENKF,FHMAX_ENKF,FHOUT_ENKF)" + wafs_last_hour: 120 + awips_g2_hours: !calc ( tools.seq(0,240,6) ) + awips_20km_1p0_hours: !calc >- + tools.uniq(sorted( + tools.seq(0,84,3) + + tools.seq(90,240,6))) diff --git a/workflow/defaults/places.yaml b/workflow/defaults/places.yaml index 9d0dcd1b7a..24c40ddb15 100644 --- a/workflow/defaults/places.yaml +++ b/workflow/defaults/places.yaml @@ -21,6 +21,18 @@ default_places: &default_places # SHORT_TERM_TEMP: !error GOT HERE # LONG_TERM_TEMP: !error GOT HERE TOO + NOSCRUB: !FirstTrue + - when: !calc doc.platform.get('NOSCRUB_DIR','') + do: !calc doc.platform.NOSCRUB_DIR + - otherwise: !expand "{doc.places.EXPROOT}/noscrub/{tools.env('USER')}" + + BASE_SVN: !calc doc.platform.BASE_SVN + BASE_GIT: !calc doc.platform.BASE_GIT + + ics_from: opsgfs + parexp: prnemsrn + HPSS_PAR_PATH: !expand "/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/{parexp}" + ECF_ROOT: !calc tools.env("ECF_ROOT","/dev/null/ECF_ROOT") ECF_HOME: !calc tools.env("ECF_HOME","/dev/null/ECF_HOME") ecflow_def_dir: !expand '{ECF_ROOT}/defs' diff --git a/workflow/defaults/settings.yaml b/workflow/defaults/settings.yaml index b09e8b86ee..d01946f141 100644 --- a/workflow/defaults/settings.yaml +++ b/workflow/defaults/settings.yaml @@ -18,19 +18,29 @@ default_settings: &default_settings rocoto_cycle_throttle: 2 max_job_tries: 2 + dev_safeguards: true # REALTIME and realtime - an alias that should be removed once we're # sure it is consistent among the yaml files: realtime: NO + run_vrfy_jobs: true four_cycle_mode: NO nco_mode: NO use_nco_ecflow_headers: NO print_esmf: .false. + prod_util_module: !calc doc.platform.get("prod_util_module","prod_util") + ecflow_real_clock: no + ecflow_virtual_clock: no + ecflow_hybrid_clock: no gfs_cyc: 4 nems_temp: 'atm' nems_temp_cold: 'atm' + ics_from: opsgfs + + parexp: prnemsrn + HPSS_PAR_PATH: !expand "/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/{parexp}" cplflx: .false. cplice: !calc cplflx @@ -43,6 +53,7 @@ default_settings: &default_settings KEEPDATA: NO DUMP_SUFFIX: "" run_gsi: No + run_enkf: !calc run_gsi chgres_and_convert_ics: Yes # awips setting @@ -55,9 +66,6 @@ default_settings: &default_settings ecflow_module: !calc doc.platform.get("ecflow_module","ecflow") - ecflow_real_clock: no - ecflow_virtual_clock: no - ecflow_hybrid_clock: no ecflow_totality_limit: yes ecflow_rocoto_cdate_workaround: !FirstTrue diff --git a/workflow/layout/cycled_gfs.yaml b/workflow/layout/cycled_gfs.yaml index f7cf895216..8c39f26769 100644 --- a/workflow/layout/cycled_gfs.yaml +++ b/workflow/layout/cycled_gfs.yaml @@ -153,7 +153,7 @@ suite: !Cycle post: !TaskArray RUN: !calc up.RUN Dimensions: - fhr: !calc doc.gfs_output_settings.gdas_forecast_hours + fhr: !calc doc.output_settings.gdas_forecast_hours post_manager_el: !TaskElement <<: *exclusive_task_template RUN: !calc up.RUN @@ -308,7 +308,7 @@ suite: !Cycle post: !TaskArray Trigger: !Depend forecast Dimensions: - fhr: !calc doc.gfs_output_settings.enkf_epos_fhr + fhr: !calc doc.output_settings.enkf_epos_fhr jgdas_enkf_post_fhr: !TaskElement <<: *exclusive_task_template Foreach: [ fhr ] @@ -436,7 +436,7 @@ suite: !Cycle post: !TaskArray RUN: !calc up.RUN Dimensions: - fhr: !calc doc.gfs_output_settings.gfs_forecast_hours + fhr: !calc doc.output_settings.gfs_forecast_hours jgfs_post_manager_el: !TaskElement <<: *exclusive_task_template RUN: !calc up.RUN @@ -504,7 +504,7 @@ suite: !Cycle /usr/bin/env post_times={FHR} FHRLST={FHR} FHRGRP={FHR} &HOMEgfs;/jobs/{J_JOB} jgfs_pgrb2_spec_post: !FirstTrue - - when: !calc max(doc.gfs_output_settings.gfs_forecast_hours)>=384 + - when: !calc max(doc.output_settings.gfs_forecast_hours)>=384 do: !Task <<: *exclusive_task_template Dummy: true ## <-- Node is not implemented yet @@ -548,7 +548,7 @@ suite: !Cycle grib_wafs: !TaskArray Disable: !calc not doc.downstream.DO_WAFS Dimensions: - fhr: !calc tools.seq(0,doc.gfs_output_settings.wafs_last_hour,6) + fhr: !calc tools.seq(0,doc.output_settings.wafs_last_hour,6) jgfs_wafs: !TaskElement <<: *exclusive_task_template Name: !expand 'jgfs_wafs_f{dimval.fhr:03d}' @@ -609,7 +609,7 @@ suite: !Cycle awips_20km_1p0: !TaskArray Disable: !calc not doc.downstream.DO_AWIPS Dimensions: - fhr: !calc " sorted(list(set(doc.gfs_output_settings.gfs_forecast_hours)&set(doc.gfs_output_settings.awips_20km_1p0_hours))) " + fhr: !calc " sorted(list(set(doc.output_settings.gfs_forecast_hours)&set(doc.output_settings.awips_20km_1p0_hours))) " # tasks every 6 hours till f240 jgfs_awips: !TaskElement <<: *exclusive_task_template @@ -626,7 +626,7 @@ suite: !Cycle awips_g2: !TaskArray Disable: !calc not doc.downstream.DO_AWIPS Dimensions: - fhr: !calc " sorted(list(set(doc.gfs_output_settings.gfs_forecast_hours)&set(doc.gfs_output_settings.awips_g2_hours))) " + fhr: !calc " sorted(list(set(doc.output_settings.gfs_forecast_hours)&set(doc.output_settings.awips_g2_hours))) " jgfs_awips: !TaskElement <<: *exclusive_task_template Foreach: [ fhr ] diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index 1b6e667749..e205e6efaa 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -77,7 +77,7 @@ suite: !Cycle post: !TaskArray RUN: !calc up.RUN Dimensions: - fhr: !calc doc.gfs_output_settings.gfs_forecast_hours + fhr: !calc doc.output_settings.gfs_forecast_hours jgfs_post_manager_el: !TaskElement <<: *exclusive_task_template RUN: !calc up.RUN @@ -145,14 +145,14 @@ suite: !Cycle RUN: !calc up.RUN Disable: !calc not doc.settings.cplflx Dimensions: - fhr: !calc doc.gfs_output_settings.ocnpost_hours + fhr: !calc doc.output_settings.ocnpost_hours jgfs_ocnpost_fhr_el: !TaskElement <<: *exclusive_task_template Foreach: [ fhr ] resources: !calc partition.resources.run_one_node_downstream Name: !expand p_{dimval.fhr:03d} FHR: !expand "{dimval.fhr:03d}" - OCN_FHRLST: !calc "tools.seq(dimval.fhr, dimval.fhr+doc.gfs_output_settings.OCN_INTERVAL, 6)" + OCN_FHRLST: !calc "tools.seq(dimval.fhr, dimval.fhr+doc.output_settings.OCN_INTERVAL, 6)" J_JOB: rocoto/ocnpost.sh Trigger: !Depend up.forecast ecflow_def: !expand "edit FHR '{FHR}'" diff --git a/workflow/layout/nco.yaml b/workflow/layout/nco.yaml index b199e543a5..ad9d82cb11 100644 --- a/workflow/layout/nco.yaml +++ b/workflow/layout/nco.yaml @@ -119,7 +119,7 @@ suite: !Cycle post: !TaskArray RUN: !calc up.RUN Dimensions: - fhr: !calc doc.gfs_output_settings.gdas_forecast_hours + fhr: !calc doc.output_settings.gdas_forecast_hours post_manager_el: !TaskElement <<: *exclusive_task_template RUN: !calc up.RUN @@ -254,7 +254,7 @@ suite: !Cycle post: !TaskArray Trigger: !Depend forecast Dimensions: - fhr: !calc doc.gfs_output_settings.enkf_epos_fhr + fhr: !calc doc.output_settings.enkf_epos_fhr jgdas_enkf_post_fhr: !TaskElement <<: *exclusive_task_template Foreach: [ fhr ] @@ -351,7 +351,7 @@ suite: !Cycle post: !TaskArray RUN: !calc up.RUN Dimensions: - fhr: !calc doc.gfs_output_settings.gfs_forecast_hours + fhr: !calc doc.output_settings.gfs_forecast_hours jgfs_post_manager_el: !TaskElement <<: *exclusive_task_template RUN: !calc up.RUN @@ -415,7 +415,7 @@ suite: !Cycle export post_times={FHR} FHRLST={FHR} FHRGRP={FHR} &HOMEgfs;/jobs/{J_JOB} jgfs_pgrb2_spec_post: !FirstTrue - - when: !calc max(doc.gfs_output_settings.gfs_forecast_hours)>=384 + - when: !calc max(doc.output_settings.gfs_forecast_hours)>=384 do: !Task <<: *exclusive_task_template Trigger: !Depend ( jgfs_post_f336 & jgfs_post_f348 & jgfs_post_f360 & jgfs_post_f372 & jgfs_post_f384 ) @@ -455,7 +455,7 @@ suite: !Cycle grib_wafs: !TaskArray Dimensions: - fhr: !calc tools.seq(0,doc.gfs_output_settings.wafs_last_hour,6) + fhr: !calc tools.seq(0,doc.output_settings.wafs_last_hour,6) jgfs_wafs: !TaskElement <<: *exclusive_task_template Name: !expand 'jgfs_wafs_f{dimval.fhr:03d}' @@ -512,7 +512,7 @@ suite: !Cycle awips_20km_1p0: !TaskArray Dimensions: - fhr: !calc " sorted(list(set(doc.gfs_output_settings.gfs_forecast_hours)&set(doc.gfs_output_settings.awips_20km_1p0_hours))) " + fhr: !calc " sorted(list(set(doc.output_settings.gfs_forecast_hours)&set(doc.output_settings.awips_20km_1p0_hours))) " # tasks every 6 hours till f240 jgfs_awips: !TaskElement <<: *exclusive_task_template @@ -527,7 +527,7 @@ suite: !Cycle awips_g2: !TaskArray Dimensions: - fhr: !calc " sorted(list(set(doc.gfs_output_settings.gfs_forecast_hours)&set(doc.gfs_output_settings.awips_g2_hours))) " + fhr: !calc " sorted(list(set(doc.output_settings.gfs_forecast_hours)&set(doc.output_settings.awips_g2_hours))) " jgfs_awips: !TaskElement <<: *exclusive_task_template Foreach: [ fhr ] diff --git a/workflow/layout/public_release_v1.yaml b/workflow/layout/public_release_v1.yaml index 4c6fed5071..c8475770fe 100644 --- a/workflow/layout/public_release_v1.yaml +++ b/workflow/layout/public_release_v1.yaml @@ -57,7 +57,7 @@ suite: !Cycle post: !TaskArray model: !calc up.model Dimensions: - fhr: !calc doc.gfs_output_settings.gfs_forecast_hours + fhr: !calc doc.output_settings.gfs_forecast_hours # jgfs_post_manager_el - used to generate the jgfs_post_manager # task. That task is only executed in ecFlow; it watches the diff --git a/workflow/schema/archiving.yaml b/workflow/schema/archiving.yaml index fd89781b2d..b8bc4a25da 100644 --- a/workflow/schema/archiving.yaml +++ b/workflow/schema/archiving.yaml @@ -1,45 +1,36 @@ archive_settings_template: !Template &archive_settings_template archive_to_hpss: - default: yes description: save data to HPSS archive type: bool arch_cyc: - default: 18 description: cycle for archiving files for warm_start capability type: int arch_warmicfreq: - default: 6 description: archive frequency in days for warm_start capability type: int arch_fcsticfreq: - default: 3 descripton: archive frequency in days for gdas/gfs forecast-only capability type: int copy_fit2obs_files: - default: yes description: online archive of nemsio files for fit2obs verification type: bool scrub_in_archive: type: bool - default: yes description: "delete GDAS/GFS COM directories at the end of the archive job" scrub_in_archive_start: type: int - default: 144 description: "starting hour of previous cycles to be removed from rotating directory during archive job" scrub_in_archive_end: type: int - default: 24 description: "ending hour of previous cycles to be removed from rotating directory during archive job" ATARDIR: type: string - default: "/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" description: "Archiving directory on HPSS for the current workflow. Default is a shell expression typically used in config.base." diff --git a/workflow/schema/data_assimilation.yaml b/workflow/schema/data_assimilation.yaml index b141a83691..20ab15928a 100644 --- a/workflow/schema/data_assimilation.yaml +++ b/workflow/schema/data_assimilation.yaml @@ -5,111 +5,85 @@ data_assimilation_template: !Template &data_assimilation_template DOHYBVAR: type: bool - default: YES description: flag (YES or NO) for hybrid ensemble variational option NMEM_ENKF: type: int - default: 80 description: Number of members of the GFS ENKF ensemble. - NMEM_EOMGGRP: { type: int, default: 10 } - NMEM_EFCSGRP: { type: int, default: 10 } - NMEM_EARCGRP: { type: int, default: 10 } - RECENTER_ENKF: { type: bool, default: YES } - SMOOTH_ENKF: { type: bool, default: YES } - assim_freq: { type: int, default: 6 } - l4densvar: { type: bool, default: YES } - lwrite4danl: { type: bool, default: NO } + NMEM_EOMGGRP: { type: int } + NMEM_EFCSGRP: { type: int } + NMEM_EARCGRP: { type: int } + RECENTER_ENKF: { type: bool } + SMOOTH_ENKF: { type: bool } + assim_freq: { type: int } + l4densvar: { type: bool } + lwrite4danl: { type: bool } NSPLIT: type: int - default: 4 description: "Execute prepbufr in parallel. Operational GFS default is 3." NAM_ENKF: type: string - default: "analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" INCREMENTS_TO_ZERO: type: string list - default: [ delz_inc, clwmr_inc, icmr_inc ] PREP_REALTIME: type: bool - default: no DO_EMCSFC: type: bool - default: NO description: "Whether to run EMC SFC job" PROCESS_TROPCY: type: bool - default: no DO_RELOCATE: type: bool - default: no DO_MAKEPREPBUFR: type: bool - default: YES description: If NO, will copy prepbufr from globaldump. Otherwise, generates prepbufr file anew. OPREFIX: type: string - default: "$CDUMP.$cycle." description: Format for dump file name prefix COM_OBS: type: string - default: "$DMPDIR" description: Top folder for COMIN_OBS (DMPDIR or COMROOT) COMIN_OBS: type: string description: Location to draw observation data from (global dump archive or com) - default: !FirstTrue - - when: !calc ( COM_OBS=="$DMPDIR" ) - do: "$DMPDIR/$CDATE/$CDUMP$DUMP_SUFFIX" - - when: !calc ( COM_OBS=="$COMROOT" ) - do: "$COMROOT/$CDUMP.$PDY/$CYC" - - otherwise: !error "Unknown COM_OBS value: {COM_OBS}" RERUN_EFCSGRP: type: bool - default: NO description: Rerun failed ensemble forecast group members automatically. RERUN_EOMGGRP: type: bool - default: YES GENDIAG: type: bool - default: YES NEPOSGRP: type: int - default: 7 OBSINPUT_INVOBS: type: string - default: "dmesh(1)=225.0,dmesh(2)=225.0" + OBSQC_INVOBS: type: string - default: "tcp_width=60.0,tcp_ermin=2.0,tcp_ermax=12.0" ENKF_INNOVATE_GROUPS: type: int - default: !calc ( NMEM_ENKF // NMEM_EOMGGRP ) ENKF_FORECAST_GROUPS: type: int - default: !calc ( NMEM_ENKF // NMEM_EFCSGRP ) ENKF_ARCHIVE_GROUPS: type: int - default: !calc ( NMEM_ENKF // NMEM_EARCGRP ) # These variable largely eliminate the need for explicitly setting # USH directories, FIX files, PARM files, EXECutables below diff --git a/workflow/schema/downstream.yaml b/workflow/schema/downstream.yaml index 816a6e1fbd..8e3859bfe2 100644 --- a/workflow/schema/downstream.yaml +++ b/workflow/schema/downstream.yaml @@ -68,7 +68,6 @@ downstream_schema: &downstream_schema !Template description: "Run FAX" DO_WAFS: type: bool - default: NO description: "Run WAFS" DO_BULLETINS: type: bool diff --git a/workflow/schema/fv3.yaml b/workflow/schema/fv3.yaml index 35540698e8..61aaba6eb3 100644 --- a/workflow/schema/fv3.yaml +++ b/workflow/schema/fv3.yaml @@ -4,97 +4,57 @@ fv3_settings_template: !Template &fv3_settings_template imp_physics: - type: int - allowed: [ 99, 8, 6, 10, 11 ] - default: 11 + type: string + allowed: [ "99", "8", "6", "10", "11" ] description: "Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL" - if_present: !FirstTrue - - when: !calc ( imp_physics==99 ) - do: !Template - ncld: { type: int, default: 1 } - nwat: { type: int, default: 2 } - FIELD_TABLE: - type: string - default: "$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr" - - when: !calc ( imp_physics == 6 ) - do: !Template - ncld: { type: int, default: 2 } - nwat: { type: int, default: 6 } - FIELD_TABLE: - type: string - default: "$HOMEgfs/parm/parm_fv3diag/field_table_wsm6" - - when: !calc ( imp_physics == 8 ) - do: !Template - ncld: { type: int, default: 2 } - nwat: { type: int, default: 6 } - FIELD_TABLE: - type: string - default: "$HOMEgfs/parm/parm_fv3diag/field_table_thompson" - - when: !calc ( imp_physics == 11 ) - do: !Template - ncld: { type: int, default: 5 } - nwat: { type: int, default: 6 } - FIELD_TABLE: - type: string - default: "$HOMEgfs/parm/parm_fv3diag/field_table_gfdl" - dnats: { type: int, default: 1 } - cal_pre: { type: bool, default: false } - do_sat_adj: { type: bool, default: true } - random_clds: { type: bool, default: false } - hord_mt_nh_nonmono: { type: int, default: 6 } - hord_xx_nh_nonmono: { type: int, default: 6 } - vtdm4_nh_nonmono: { type: float, default: 0.02 } - nord: { type: int, default: 2 } - dddmp: { type: float, default: 0.1 } - d4_bg: { type: float, default: 0.12 } - - otherwise: !error "Unknown imp_physics value: {imp_physics}" new_o3force: type: bool - default: yes description: Options of stratosphere O3 physics reaction coefficients h2o_phys: type: bool - default: yes description: Use stratosphere h2o physics do_vort_damp: type: bool - default: yes description: vorticity and divergence damping consv_te: type: float - default: 1. description: conserve total energy fv_sg_adj: type: int - default: 450 description: time-scale to remove 2dz instability dspheat: type: bool - default: YES description: dissipative heating shal_cnv: type: bool - default: YES description: shallow convection flag agrid_vel_rst: type: bool - default: yes description: "write velocity restarts on A grid?" - cal_pre: { type: bool, default: true } - do_sat_adjust: { type: bool, default: false } - random_clds: { type: bool, default: true } - cnvcld: { type: bool, default: true } - dnats: { type: int, default: 0 } - IEMS: { type: int, default: 1 } - IALB: { type: int, default: 1 } - ISOL: { type: int, default: 2 } - IAER: { type: int, default: 111 } - ICO2: { type: int, default: 2 } - warm_start: { type: bool, default: true } - read_increment: { type: bool, default: no } - restart_interval: { type: int, default: 6 } +# cal_pre: { type: bool } +# do_sat_adjust: { type: bool } +# random_clds: { type: bool } + cnvcld: { type: bool } +# ncld: { type: int } +# nwat: { type: int } +# hord_mt_nh_nonmono: { type: int } +# hord_xx_nh_nonmono: { type: int } +# vtdm4_nh_nonmono: { type: float } +# nord: { type: int } +# dddmp: { type: float } +# d4_bg: { type: float } +# dnats: { type: int } + IEMS: { type: int } + IALB: { type: int } + ISOL: { type: int } + IAER: { type: int } + ICO2: { type: int } + warm_start: { type: bool } + read_increment: { type: bool } + restart_interval: { type: int } +# FIELD_TABLE: { type: string } LEVS: type: int @@ -102,53 +62,42 @@ fv3_settings_template: !Template &fv3_settings_template FHCYC: type: int - default: 24 description: Surface cycle update frequency (gdas=1,gfs=24) FHCYC_GDAS: type: int - default: 1 description: Surface cycle update frequency for the GDAS FHCYC_GFS: type: int - default: 24 description: Surface cycle update frequency for the GFS QUILTING: type: bool - default: YES description: Should output quilting be used? WRITE_NEMSIOFILE: type: bool - default: YES description: Should nemsio output be used (yes/true) instead of netcdf (no/false)? - WRITE_NEMSIOFLIP: { type: bool, default: yes } - nst_anl: { type: bool, default: yes } - lprecip_accu: { type: bool, default: yes, + WRITE_NEMSIOFLIP: { type: bool } + nst_anl: { type: bool } + lprecip_accu: { type: bool, description: "Precipitation accumulation, true--no bucket, false--bucket=FHZER" } - DONST: { type: bool, default: YES } + DONST: { type: bool } MONO: type: string - default: "non-mono" allowed: [ mono, non-mono ] MEMBER: type: int stage: [ execution ] - default: -1 description: "-1: control, 0: ensemble mean, >0: ensemble member $MEMBER" - d4_bg: { type: float, default: 0.15 } - dddmp: { type: float, default: 0.2 } - ISEED: type: int - default: 0 stage: [ execution ] description: > Default seed for shum, skeb, and sppt, if specific seeds @@ -156,152 +105,31 @@ fv3_settings_template: !Template &fv3_settings_template SET_STP_SEED: type: bool - default: YES description: > Automatically set seeds for SKEB, SHUM, and SPPT at execution time based on simulation date and member. DO_SHUM: type: bool - default: NO - if_present: !FirstTrue - - when: !calc DO_SHUM - do: - ISEED_SHUM: { type: int, optional: true } - SHUM: { type: float, default: -999. } - SHUM_TAU: { type: float, default: -999. } - SHUM_LSCALE: { type: float, default: -999. } - - otherwise: null DO_SKEB: type: bool - default: NO - if_present: !FirstTrue - - when: !calc DO_SKEB - do: - ISEED_SHUM: { type: int, optional: true } - SKEB_TAU: { type: float, default: -999. } - SKEB_LSCALE: { type: float, default: -999. } - SKEBNORM: { type: int, default: 1 } - SKEB: { type: float, default: -999. } - - otherwise: null DO_SPPT: type: bool - default: NO - if_present: !FirstTrue - - when: !calc DO_SPPT==True - do: - ISEED_SHUM: { type: int, optional: true } - SPPT: { type: float } - SPPT_TAU: { type: float, default: -999. } - SPPT_LSCALE: { type: float, default: -999. } - SPPT_SFCLIMIT: { type: bool, default: yes } - - otherwise: !Message "Don't SPPT" - RUN_EFCSGRP: { type: bool, default: NO } - ncld: { type: int, default: 1 } - nwat: { type: int, default: 2 } - zhao_mic: { type: bool, default: YES } - nh_type: { type: string, default: 'nh' } - USE_COUPLER_RES: { type: bool, default: NO } + RUN_EFCSGRP: { type: bool } + zhao_mic: { type: bool } + nh_type: { type: string } + USE_COUPLER_RES: { type: bool } cdmbgwd: { type: string, optional: true } CDUMP: type: string allowed: [ gfs, gdas ] + DELTIM: { type: int } + CASE: type: string allowed: [ 'C48', 'C96', 'C192', 'C384', 'C768', 'C1152', 'C3072' ] - if_present: !FirstTrue - - when: !calc (CASE == "C48") - do: !Template - DELTIM: { type: int, default: 450 } - layout_x: { type: int, default: 2 } - layout_y: { type: int, default: 4 } - fv3_threads: { type: int, default: 1 } - cdmbgwd: - type: string - default: "0.062,3.5,1.0,1.0" - description: "mountain blocking and gravity wave drag" - WRITE_GROUP: { type: int, default: 1 } - WRTTASK_PER_GROUP: { type: int, default: 24 } - WRTIOBUF: { type: string, default: "4M" } - - - when: !calc (CASE == "C96") - do: !Template - DELTIM: { type: int, default: 450 } - layout_x: { type: int, default: 4 } - layout_y: { type: int, default: 4 } - fv3_threads: { type: int, default: 1 } - cdmbgwd: - type: string - default: "0.125,3.0,1.0,1.0" - description: "mountain blocking and gravity wave drag" - WRITE_GROUP: { type: int, default: 1 } - WRTTASK_PER_GROUP: { type: int, default: 24 } - WRTIOBUF: { type: string, default: "4M" } - - - when: !calc (CASE == "C192") - do: !Template - DELTIM: { type: int, default: 450 } - layout_x: { type: int, default: 4 } - layout_y: { type: int, default: 6 } - fv3_threads: { type: int, default: 2 } - cdmbgwd: - type: string - default: "0.23,1.5,1.0,1.0" - description: "mountain blocking and gravity wave drag" - WRITE_GROUP: { type: int, default: 2 } - WRTTASK_PER_GROUP: { type: int, default: 24 } - WRTIOBUF: { type: string, default: "8M" } - - - when: !calc (CASE == "C384") - do: !Template - DELTIM: { type: int, default: 240 } - layout_x: { type: int, default: 6 } - layout_y: { type: int, default: 6 } - fv3_threads: { type: int, default: 2 } - cdmbgwd: - type: string - default: "1.1,0.72,1.0,1.0" - description: "mountain blocking and gravity wave drag" - WRITE_GROUP: { type: int, default: 3 } - WRTTASK_PER_GROUP: { type: int, default: 24 } - WRTIOBUF: { type: string, default: "16M" } - - - when: !calc (CASE == "C768") - do: !Template - DELTIM: { type: int, default: 225 } - layout_x: { type: int, default: 8 } - layout_y: { type: int, default: 16 } - fv3_threads: { type: int, default: 2 } - cdmbgwd: - type: string - default: "3.5,0.25,1.0,1.0" - description: "mountain blocking and gravity wave drag" - WRITE_GROUP: { type: int, default: 4 } - WRTTASK_PER_GROUP: { type: int, default: 60 } - WRTIOBUF: { type: string, default: "32M" } - - - when: !calc (CASE == "C1152") - do: !Template - DELTIM: { type: int, default: 150 } - layout_x: { type: int, default: 8 } - layout_y: { type: int, default: 16 } - fv3_threads: { type: int, default: 4 } - WRITE_GROUP: { type: int, default: 4 } - WRTTASK_PER_GROUP: { type: int, default: 84 } - WRTIOBUF: { type: string, default: "48M" } - - - when: !calc (CASE == "C3072") - do: !Template - DELTIM: { type: int, default: 90 } - layout_x: { type: int, default: 16 } - layout_y: { type: int, default: 32 } - fv3_threads: { type: int, default: 4 } - WRITE_GROUP: { type: int, default: 4 } - WRTTASK_PER_GROUP: { type: int, default: 120 } - WRTIOBUF: { type: string, default: "64M" } - - otherwise: !error "Unknown case: {CASE}" diff --git a/workflow/schema/ice.yaml b/workflow/schema/ice.yaml index 089e798316..afbcf32552 100644 --- a/workflow/schema/ice.yaml +++ b/workflow/schema/ice.yaml @@ -3,5 +3,4 @@ ice_settings_template: !Template &ice_settings_template MOD: type: string allowed: [ cice5, cice6 ] - default: cice5 description: "model selection for ice" diff --git a/workflow/schema/nsst.yaml b/workflow/schema/nsst.yaml index cf195664ba..1efcc8eb05 100644 --- a/workflow/schema/nsst.yaml +++ b/workflow/schema/nsst.yaml @@ -2,24 +2,19 @@ nsst_schema: &nsst_schema !Template NST_MODEL: type: int allowed: [ 0, 1, 2 ] - default: 2 description: >- nstf_name(1) : NST_MODEL (NSST Model) : 0 = OFF, 1 = ON but uncoupled, 2 = ON and coupled NST_RESV: type: int - default: 0 allowed: [ 0, 1 ] ZSEA1: type: int - default: 0 ZSEA2: type: int - default: 0 NST_GSI: type: int allowed: [ 0, 1, 2, 3, 4 ] - default: 3 description: | 0: No NST info at all; 1: Input NST info but not used in GSI; @@ -28,7 +23,6 @@ nsst_schema: &nsst_schema !Template NSTINFO: type: int - default: 0 description: number of elements added in obs. data array NST_SPINUP: type: int diff --git a/workflow/schema/ocn.yaml b/workflow/schema/ocn.yaml index d8f79d48e5..a349d09fd9 100644 --- a/workflow/schema/ocn.yaml +++ b/workflow/schema/ocn.yaml @@ -6,5 +6,4 @@ ocn_settings_template: !Template &ocn_settings_template MOD: type: string allowed: [ mom6, hycom ] - default: mom6 description: "model selection for ocean" diff --git a/workflow/schema/output.yaml b/workflow/schema/output.yaml index 42868b8143..50500481c8 100644 --- a/workflow/schema/output.yaml +++ b/workflow/schema/output.yaml @@ -1,99 +1,72 @@ -gfs_output_settings_template: !Template &gfs_output_settings_template +output_settings_template: !Template &output_settings_template FHOUT_GFS: type: int - default: 3 description: GFS forecast output frequency in hours FHMIN_GFS: type: int - default: 0 description: GFS forecast initial hour for output + FHMAX_GFS: + type: int + description: GFS total forecast hour for output FHMIN_ENKF: type: int - default: 3 description: GDAS ENKF initial hour for output FHMAX_ENKF: type: int - default: 9 description: GDAS ENKF forecast length FHOUT_ENKF: type: int description: GDAS ENKF output frequency in hours - default: !FirstTrue - - when: doc.data_assimilation.l4densvar - do: 1 - - otherwise: 3 FHMIN_GDAS: type: int - default: 0 description: GDAS initial hour for output FHMAX_GDAS: type: int - default: 9 description: GDAS forecast length FHOUT_GDAS: type: int - default: 3 description: GDAS output frequency in hours FHMAX_HF_GFS: type: int - default: 0 description: Last forecast hour with high-frequency output for gfs FHOUT_HF_GFS: type: int - default: 1 description: Output frequency until FHMAX_HF_GFS hours. OCN_INTERVAL: type: int - default: 120 description: Interval for separating ocean post job. NCO_NAMING_CONV: type: bool - default: YES description: "YES = use standard, operational, naming conventions. NO = use non-standard naming conventions" OUTPUT_FILE_TYPE: type: string - default: nemsio description: "Type of model output file" gfs_forecast_hours: type: int list - default: !calc >- - tools.uniq(sorted( - tools.seq(FHMIN_GFS,FHMAX_HF_GFS,FHOUT_HF_GFS) + - tools.seq(FHMIN_GFS,FHMAX_GFS, FHOUT_GFS))) ocnpost_hours: type: int list - default: !calc "tools.seq(FHMIN_GFS,FHMAX_GFS-OCN_INTERVAL,OCN_INTERVAL)" gdas_forecast_hours: type: int list - default: !calc "tools.seq(FHMIN_GDAS,FHMAX_GDAS,FHOUT_GDAS)" enkf_epos_fhr: type: int list - default: !calc "tools.seq(FHMIN_ENKF,FHMAX_ENKF,FHOUT_ENKF)" wafs_last_hour: type: int - default: !calc 120 awips_g2_hours: type: int list - default: !calc ( tools.seq(0,240,6) ) awips_20km_1p0_hours: type: int list - default: !calc >- - tools.uniq(sorted( - tools.seq(0,84,3) + - tools.seq(90,240,6))) - diff --git a/workflow/schema/places.yaml b/workflow/schema/places.yaml index 10d98ef194..23ed39f515 100644 --- a/workflow/schema/places.yaml +++ b/workflow/schema/places.yaml @@ -19,19 +19,15 @@ places_schema: &places_schema !Template # SHORT_TERM_TEMP: { type: string } # LONG_TERM_TEMP: { type: string } - HOMEDIR: - type: string - default: !FirstTrue - - when: !calc doc.platform.get('SAVE_DIR','') - do: !calc doc.platform.SAVE_DIR - - otherwise: !expand "{doc.places.EXPROOT}/save/{tools.env('USER')}" +# HOMEDIR: +# type: string +# default: !FirstTrue +# - when: !calc doc.platform.get('SAVE_DIR','') +# do: !calc doc.platform.SAVE_DIR +# - otherwise: !expand "{doc.places.EXPROOT}/save/{tools.env('USER')}" NOSCRUB: type: string - default: !FirstTrue - - when: !calc doc.platform.get('NOSCRUB_DIR','') - do: !calc doc.platform.NOSCRUB_DIR - - otherwise: !expand "{doc.places.EXPROOT}/noscrub/{tools.env('USER')}" description: "Disk area used to store reduced output, verification statistics, and other small files that may be desired between runs. The workflow will not scrub this." FIXgsi: { type: string, optional: true } @@ -40,28 +36,16 @@ places_schema: &places_schema !Template HOMEobsproc_prep: type: string optional: true - default: !expand "{doc.platform.BASE_GIT}/obsproc/obsproc_prep_RB-5.2.0" HOMEobsproc_network: type: string optional: true - default: !expand "{doc.platform.BASE_GIT}/obsproc/obsproc_global_RB-3.2.0" BASE_VERIF: { type: string, optional: true } BASE_SVN: type: string - default: !calc doc.platform.BASE_SVN BASE_GIT: type: string - default: !calc doc.platform.BASE_GIT ics_from: type: string - default: opsgfs allowed: [ opsgfs, pargfs ] description: initial conditions from opsgfs or pargfs - if_present: !Template - parexp: - type: string - default: prnemsrn - HPSS_PAR_PATH: - type: string - default: !expand "/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/{parexp}" diff --git a/workflow/schema/post.yaml b/workflow/schema/post.yaml index 1ce3862a7c..7d2e0d67ad 100644 --- a/workflow/schema/post.yaml +++ b/workflow/schema/post.yaml @@ -1,4 +1,4 @@ -# This is used to set default values for grib product generation. +# This is used to set variable design for grib product generation. # Reconfiguring These variables are not supported in this release. post_schema: &post_schema !Template diff --git a/workflow/schema/settings.yaml b/workflow/schema/settings.yaml index c4a275db52..7606d59234 100644 --- a/workflow/schema/settings.yaml +++ b/workflow/schema/settings.yaml @@ -1,24 +1,30 @@ settings_schema: !Template &settings_schema + gfs_cyc: + type: int + allowed: [ 0, 1, 2, 4 ] + description: | + When to run GFS forecast. Data assimilation is run for every + cycle regardless of these values + * 0: no GFS cycle + * 1: 00Z only + * 2: 00Z and 12Z only + * 4: all 4 cycles (0, 6, 12, 18 Z) dev_safeguards: type: bool - default: true description: "Add backup triggers in workflow to handle scheduling delays, such as the forecast finishing any posts start. Only turn this off for NCO operational deliveries." realtime: type: bool - default: false description: "Simulation of an event that is currently happening (ie.: a forecast)" run_vrfy_jobs: type: bool - default: true description: "Run the EMC product generation jobs." four_cycle_mode: type: bool description: "Enable NCO-like four cycle suite. Requires a special setup for your ecFlow server, and a prepared directory structure designed to look like NCEP production. Do not use unless you know what you're doing." - default: false if_present: !FirstTrue - when: !calc four_cycle_mode take: !FirstTrue @@ -28,52 +34,36 @@ settings_schema: !Template &settings_schema - otherwise: !error "In four cycle mode, the experiment must be prod, para, or test, not {doc.names.experiment}." - otherwise: null -# ecf_module_commands: -# type: str -# default: !FirstTrue -# - when: !calc four_cycle_mode -# take: !calc doc.platform.four_cycle_mode_modules -# - otherwise: !expand | -# source "$HOMEgfs/ush/load_fv3gfs_modules.sh" {task_type} - rocoto_cycle_throttle: type: int description: "Maximum number of cycles active at once in a Rocoto workflow" - default: 2 rocoto_task_throttle: type: int description: "Maximum number of tasks active (queued/running) at once in a Rocoto workflow" - default: 5 use_nco_ecflow_headers: type: bool description: "Use the NCO model-ver.h instead of experiment-specific paths. This will cause you to use the scripts and code in NCEP Operational areas instead of your own scripts and code. Only use this option if you know what you're doing." - default: !calc four_cycle_mode prod_util_module: - type: str - default: !calc doc.platform.get("prod_util_module","prod_util") + type: string description: Name of the unix modulefile to load to obtain NCEP production shell utilities. ecflow_real_clock: type: bool - default: no description: the ecflow suite definition should specify a real clock ecflow_virtual_clock: type: bool - default: no description: the ecflow suite definition should specify a virtual clock ecflow_hybrid_clock: type: bool - default: no description: the ecflow suite definition should specify a hybrid clock ecflow_totality_limit: type: bool - default: yes description: 'Place the entire suite in the "/totality_limit:TOTALITY" limit so that the server can limit the total number of jobs running.' run_gsi: @@ -83,7 +73,6 @@ settings_schema: !Template &settings_schema run_enkf: type: bool description: "Enable Ensemble Kalman Filter" - default: !calc run_gsi chgres_and_convert_ics: type: bool @@ -91,7 +80,6 @@ settings_schema: !Template &settings_schema max_job_tries: type: int - default: 1 description: "Number of times to try running a job. Set to 1 for no retries." IC_CDUMP: @@ -100,18 +88,6 @@ settings_schema: !Template &settings_schema optional: true description: Get initial conditions from gfs or gdas - gfs_cyc: - type: int - default: 4 - allowed: [ 0, 1, 2, 4 ] - description: | - When to run GFS forecast. Data assimilation is run for every - cycle regardless of these values - * 0: no GFS cycle - * 1: 00Z only - * 2: 00Z and 12Z only - * 4: all 4 cycles (0, 6, 12, 18 Z) - SDATE: type: datetime description: | @@ -126,13 +102,5 @@ settings_schema: !Template &settings_schema ics_from: type: string - default: opsgfs allowed: [ opsgfs, pargfs ] description: initial conditions from opsgfs or pargfs - if_present: !Template - parexp: - type: string - default: prnemsrn - HPSS_PAR_PATH: - type: string - default: !expand "/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/{parexp}" diff --git a/workflow/top.yaml b/workflow/top.yaml index 57d3cdbd1e..e7375eba74 100644 --- a/workflow/top.yaml +++ b/workflow/top.yaml @@ -15,8 +15,8 @@ fv3_gdas_settings: !Immediate fv3_enkf_settings: !Immediate - !calc doc.case.fv3_enkf_settings -gfs_output_settings: !Immediate - - !calc doc.case.get('gfs_output_settings',{}) +output_settings: !Immediate + - !calc doc.case.get('output_settings',{}) schedvar: !Immediate - !MergeMapping From 8845076def295bea4baf0309330c4b10bc78f07f Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 9 Mar 2020 15:06:34 +0000 Subject: [PATCH 09/91] model_configure_DATM --- ush/parsing_model_configure_DATM.sh | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 ush/parsing_model_configure_DATM.sh diff --git a/ush/parsing_model_configure_DATM.sh b/ush/parsing_model_configure_DATM.sh new file mode 100755 index 0000000000..c3fb5d1ac5 --- /dev/null +++ b/ush/parsing_model_configure_DATM.sh @@ -0,0 +1,40 @@ +#! /bin/sh + +##### +## "parsing_model_configure_DATM.sh" +## This script writes model configure file +## for DATM model +## +## This is the child script of ex-global forecast, +## writing model configure file for DATM +## This script is a direct execution. +##### + +DATM_model_configure(){ + +rm -f model_configure +cat > model_configure < Date: Mon, 9 Mar 2020 18:26:53 +0000 Subject: [PATCH 10/91] merge in the latest revision from IPD work --- scripts/exglobal_fcst_nemsfv3gfs.sh | 96 +++++++++---------------- ush/cplvalidate.sh | 1 + ush/forecast_postdet.sh | 104 +++++++++++++++++++++------- ush/forecast_predet.sh | 20 +++++- ush/nems_configure.sh | 14 +++- ush/parsing_model_configure_FV3.sh | 17 +++-- ush/parsing_namelists_FV3.sh | 73 ++++++++++++++----- 7 files changed, 214 insertions(+), 111 deletions(-) diff --git a/scripts/exglobal_fcst_nemsfv3gfs.sh b/scripts/exglobal_fcst_nemsfv3gfs.sh index 76da4a5b1f..a64dc125fb 100755 --- a/scripts/exglobal_fcst_nemsfv3gfs.sh +++ b/scripts/exglobal_fcst_nemsfv3gfs.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ ## UNIX Script Documentation Block ## Script name: exglobal_fcst_nemsfv3gfs.sh @@ -72,7 +72,6 @@ ## 2. nems.configure ## 3. model_configure ## 4. input.nml - ####################### # Main body starts here ####################### @@ -83,29 +82,8 @@ if [ $VERBOSE = "YES" ] ; then set -x fi -## Run in sandbox if no $machine defined -## Locate mod_forecast script folder -if [ -z $machine ]; then - machine='sandbox' - echo "MAIN: !!!Running in sandbox mode!!!" - unameOut="$(uname -s)" - case "${unameOut}" in - Linux*) - SCRIPTDIR=$(dirname $(readlink -f "$0") )/../ush - echo "MAIN: Linux environment. Current Script locates in $SCRIPTDIR." - ;; - Darwin*) - SCRIPTDIR=$(pwd)/../ush - echo "MAIN: MacOS environment. Current Script locates in $SCRIPTDIR." - ;; - CYGWIN*) echo CYGWIN ;; - MINGW*) echo MinGw ;; - *) echo "UNKNOWN:${unameOut}" - esac -else - SCRIPTDIR=$(dirname $(readlink -f "$0") )/../ush - echo "MAIN: environment loaded for $machine platform,Current Script locates in $SCRIPTDIR." -fi +SCRIPTDIR=$(dirname $(readlink -f "$0") )/../ush +echo "MAIN: environment loaded for $machine platform,Current Script locates in $SCRIPTDIR." # include all subroutines. Executions later. source $SCRIPTDIR/cplvalidate.sh # validation of cpl* @@ -114,6 +92,7 @@ source $SCRIPTDIR/forecast_det.sh # include functions for run type determinatio source $SCRIPTDIR/forecast_postdet.sh # include functions for variables after run type determination source $SCRIPTDIR/nems_configure.sh # include functions for nems_configure processing source $SCRIPTDIR/parsing_model_configure_FV3.sh +source $SCRIPTDIR/parsing_model_configure_DATM.sh # Compset string. For nems.configure.* template selection. Default ATM only confignamevarfornems=${confignamevarfornems:-'atm'} @@ -125,15 +104,12 @@ cplwav=${cplwav:-.false.} # ? how to control 1-way/2-way? cplchem=${cplchem:-.false.} # Chemistry model cplice=${cplice:-.false.} # ICE model -OCNTIM=${OCNTIM:-1800} +OCNTIM=${OCNTIM:-3600} DELTIM=${DELTIM:-450} ICETIM=${DELTIM} -CPL_SLOW=${OCNTIM} -CPL_FAST=${ICETIM} -# Coupling control switches, for coupling purpose, off by default - -[[ $machine = 'sandbox' ]] && RUN=gfs +CPL_SLOW=${CPL_SLOW:-$OCNTIM} +CPL_FAST=${CPL_FAST:-$ICETIM} echo "MAIN: $confignamevarfornems selected" echo "MAIN: Forecast script started for $confignamevarfornems on $machine" @@ -149,7 +125,7 @@ common_predet echo $RUN case $RUN in - 'data') Data_ATM_setup;; + 'data') DATM_predet;; 'gfs') FV3_GFS_predet;; 'gdas') FV3_GFS_predet;; 'gefs') FV3_GEFS_predet;; @@ -174,6 +150,7 @@ echo "MAIN: RUN Type Determined" echo "MAIN: Post-determination set up of run type" echo $RUN case $RUN in + 'data') DATM_postdet;; 'gfs') FV3_GFS_postdet;; 'gdas') FV3_GFS_postdet;; 'gefs') FV3_GEFS_postdet;; @@ -186,6 +163,7 @@ echo "MAIN: Post-determination set up of run type finished" echo "MAIN: Writing name lists and model configuration" case $RUN in + 'data') DATM_nml;; 'gfs') FV3_GFS_nml;; 'gdas') FV3_GFS_nml;; 'gefs') FV3_GEFS_nml;; @@ -194,7 +172,13 @@ esac #no namelist for data atmosphere [[ $cplwav = .true. ]] && WW3_nml [[ $cplice = .true. ]] && CICE_nml [[ $cplchem = .true. ]] && GSD_nml -Common_model_configure + +case $RUN in + 'data') DATM_model_configure;; + 'gfs') FV3_model_configure;; + 'gdas') FV3_model_configure;; + 'gefs') FV3_model_configure;; +esac echo "MAIN: Name lists and model configuration written" echo "MAIN: Writing NEMS Configure file" @@ -204,39 +188,26 @@ echo "MAIN: NEMS configured" #------------------------------------------------------------------ # run the executable -if [ $machine != 'sandbox' ]; then - $NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. - export OMP_NUM_THREADS=$NTHREADS_FV3 - $APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 - export ERR=$? - export err=$ERR - $ERRSCRIPT || exit $err -else - echo "MAIN: mpirun launch here" -fi +$NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. +export OMP_NUM_THREADS=$NTHREADS_FV3 +$APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 +export ERR=$? +export err=$ERR +$ERRSCRIPT || exit $err -if [ $machine != 'sandbox' ]; then - case $RUN in - 'data') data_out_Data_ATM;; - 'gfs') data_out_GFS;; - 'gdas') data_out_GFS;; - 'gefs') data_out_GEFS;; - esac - [[ $cplflx = .true. ]] && MOM6_out - [[ $cplwav = .true. ]] && WW3_out - [[ $cplice = .true. ]] && CICE_out - [[ $cplchem = .true. ]] && GSD_out -else - echo "MAIN: Running on sandbox mode, no output linking" -fi +case $RUN in + 'data') data_out_Data_ATM;; + 'gfs') data_out_GFS;; + 'gdas') data_out_GFS;; + 'gefs') data_out_GEFS;; +esac +[[ $cplflx = .true. ]] && MOM6_out +[[ $cplwav = .true. ]] && WW3_out +[[ $cplice = .true. ]] && CICE_out +[[ $cplchem = .true. ]] && GSD_out echo "MAIN: Output copied to COMROT" #------------------------------------------------------------------ -# Clean up before leaving -if [ $mkdata = "YES" ]; then rm -rf $DATA; fi - -#------------------------------------------------------------------ -#set +x if [ $VERBOSE = "YES" ] ; then echo $(date) EXITING $0 with return code $err >&2 fi @@ -246,5 +217,6 @@ if [ $err != 0 ]; then exit $err else echo "MAIN: $confignamevarfornems Forecast completed at normal status" + if [ $mkdata = "YES" ]; then rm -rf $DATA; fi exit 0 fi diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index ef888bfb42..f6ffa42ec0 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -12,6 +12,7 @@ cplvalidate(){ echo "SUB cplvalidate: validating cpl** switches for $confignamevarfornems" case $confignamevarfornems in 'atm') combination=.false..false..false..false..false.;; + 'datm') combination=.true..true..false..false..false.;; 'med_atm_ocn_ice') combination=.true..true..true..false..false.;; 'blocked_atm_wav') combination=.true..false..false..true..false.;; 'leapfrog_atm_wav')combination=.true..false..false..true..false.;; diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 9ceb8940f2..0f8853fb0c 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -16,6 +16,21 @@ FV3_GEFS_postdet(){ # soft link commands insert here } +DATM_postdet(){ +###################################################################### +# 3.1 Link DATM inputs (ie forcing files) # +###################################################################### + +#TODO: This should be some loop through CDATE-> CDATE+ FORECAST length +#and get input from either CFSR or GEFS or Whatever... +#Currently assumes you only need the month of DATM input for IC date + +# DATM forcing file name convention is ${DATM_FILENAME_BASE}.$YYYYMMDDHH.nc +echo "Link DATM forcing files" +DATMINPUTDIR="/scratch2/NCEPDEV/marineda/DATM_INPUT/CFSR/${SYEAR}${SMONTH}" +ln -sf ${DATMINPUTDIR}/${DATM_FILENAME_BASE}*.nc $DATA/DATM_INPUT/ +} + FV3_GFS_postdet(){ echo "SUB ${FUNCNAME[0]}: $RERUN and $warm_start determined for $RUN" @@ -180,6 +195,16 @@ EOF O3FORC=global_o3prdlos.f77 fi H2OFORC=${H2OFORC:-"global_h2o_pltc.f77"} + #### + # copy CCN_ACTIVATE.BIN for Thompson microphysics + if [ $imp_physics -eq 8 ]; then + $NCP $FV3INP/CCN_ACTIVATE.BIN CCN_ACTIVATE.BIN + #### + $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/freezeH2O.dat freezeH2O.dat + $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/qr_acr_qg.dat qr_acr_qg.dat + $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/qr_acr_qs.dat qr_acr_qs.dat + sleep 60 + fi $NLN $FIX_AM/${O3FORC} $DATA/global_o3prdlos.f77 $NLN $FIX_AM/${H2OFORC} $DATA/global_h2oprdlos.f77 $NLN $FIX_AM/global_solarconstant_noaa_an.txt $DATA/solarconstant_noaa_an.txt @@ -362,9 +387,9 @@ EOF else ISEED=${ISEED:-0} fi - DO_SKEB=${DO_SKEB:-"NO"} - DO_SPPT=${DO_SPPT:-"NO"} - DO_SHUM=${DO_SHUM:-"NO"} + DO_SKEB=${DO_SKEB:-".false."} + DO_SPPT=${DO_SPPT:-".false."} + DO_SHUM=${DO_SHUM:-".false."} JCAP_STP=${JCAP_STP:-$JCAP_CASE} LONB_STP=${LONB_STP:-$LONB_CASE} LATB_STP=${LATB_STP:-$LATB_CASE} @@ -415,6 +440,12 @@ FV3_GFS_nml(){ echo SUB ${FUNCNAME[0]}: FV3 name lists and model configure file created } +DATM_nml(){ + source $SCRIPTDIR/parsing_namelists_DATM.sh + DATM_namelists + echo SUB ${FUNCNAME[0]}: DATM name lists and model configure file created +} + data_out_GFS() { # data in take for FV3GFS @@ -581,37 +612,57 @@ MOM6_out() CICE_postdet() { echo "SUB ${FUNCNAME[0]}: CICE after run type determination" + + year=$(echo $CDATE|cut -c 1-4) + #BL2018 + stepsperhr=$((3600/$DT_CICE)) + #BL2018 + nhours=$(${NHOUR} ${CDATE} ${SYEAR}010100) + istep0=$((nhours*stepsperhr)) + npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work + + histfreq_n=${histfreq_n:-6} + restart_interval=${restart_interval:-1296000} # restart write interval in seconds, default 15 days + dumpfreq_n=$restart_interval # restart write interval in seconds + + #BL2018 + #dumpfreq='d' + #dumpfreq='s' + if [ -d $ROTDIR/../NEXT_IC ]; then + #continuing run "hot start" + RUNTYPE='continue' + USE_RESTART_TIME='.true.' + restart_pond_lvl=${restart_pond_lvl:-".true."} + else + #using cold start IC + RUNTYPE='initial' + USE_RESTART_TIME='.false.' + restart_pond_lvl=${restart_pond_lvl:-".false."} + fi + + dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} + dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" + + iceres=${iceres:-"mx025"} + ice_grid_file=${ice_grid_file:-"grid_cice_NEMS_${iceres}.nc"} + ice_kmt_file=${ice_kmt_file:-"kmtu_cice_NEMS_${iceres}.nc"} + + #TODO iceic name... this might need to be update? + iceic="cice5_model.res_$CDATE.nc" + # Copy CICE5 IC - pre-generated from CFSv2 - cp -p $ICSDIR/$CDATE/cice5_model_0.25.res_$CDATE.nc $DATA/cice5_model.res_$CDATE.nc + cp -p $ICSDIR/$CDATE/cice5_model_0.25.res_$CDATE.nc $DATA/$iceic #cp -p $ICSDIR/$CDATE/cpc/cice5_model_0.25.res_$CDATE.nc ./cice5_model.res_$CDATE.nc - # Copy CICE5 fixed files, and namelists - cp -p $FIXcice/kmtu_cice_NEMS_mx025.nc $DATA/ - cp -p $FIXcice/grid_cice_NEMS_mx025.nc $DATA/ + echo "Link CICE fixed files" + ln -sf $FIXcice/${ice_grid_file} $DATA/ + ln -sf $FIXcice/${ice_kmt_file} $DATA/ # Copy grid_spec and mosaic files cp -pf $FIXgrid/$CASE/${CASE}_mosaic* $DATA/INPUT/ cp -pf $FIXgrid/$CASE/grid_spec.nc $DATA/INPUT/ cp -pf $FIXgrid/$CASE/ocean_mask.nc $DATA/INPUT/ cp -pf $FIXgrid/$CASE/land_mask* $DATA/INPUT/ - - iceic=cice5_model.res_$CDATE.nc - year=$(echo $CDATE|cut -c 1-4) - #BL2018 - stepsperhr=$((3600/$ICETIM)) - #BL2018 - nhours=$($NHOUR $CDATE ${year}010100) - steps=$((nhours*stepsperhr)) - npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work - - histfreq_n=${histfreq_n:-6} - restart_interval=${restart_interval:-1296000} # restart write interval in seconds, default 15 days - dumpfreq_n=$restart_interval # restart write interval in seconds - - #BL2018 - #dumpfreq='d' - #dumpfreq='s' - } CICE_nml() @@ -683,3 +734,6 @@ GSD_out() echo "SUB ${FUNCNAME[0]}: Copying output data for GSD" # soft link commands insert here } + + + diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 956a4ffc7c..008d7c748e 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -21,6 +21,20 @@ common_predet(){ ICSDIR=${ICSDIR:-$pwd} # cold start initial conditions } +DATM_predet(){ + SYEAR=$(echo $CDATE | cut -c1-4) + SMONTH=$(echo $CDATE | cut -c5-6) + SDAY=$(echo $CDATE | cut -c7-8) + SHOUR=$(echo $CDATE | cut -c9-10) + # directory set up + if [ ! -d $DATA ]; then mkdir -p $DATA; fi + if [ ! -d $DATA/DATM_INPUT ]; then mkdir -p $DATA/DATM_INPUT; fi + FHMAX=${FHMAX:-9} +# Go to Run Directory (DATA) +cd $DATA + +} + FV3_GFS_predet(){ echo "SUB ${FUNCNAME[0]}: Defining variables for FV3GFS" CDUMP=${CDUMP:-gdas} @@ -83,7 +97,11 @@ FV3_GFS_predet(){ NTHREADS_FV3=${NTHREADS_FV3:-${NTHREADS_FCST:-${nth_fv3:-1}}} cores_per_node=${cores_per_node:-${npe_node_max:-24}} ntiles=${ntiles:-6} - NTASKS_TOT=${NTASKS_TOT:-$npe_fcst} + if [ $MEMBER -lt 0 ]; then + NTASKS_TOT=${NTASKS_TOT:-$npe_fcst} + else + NTASKS_TOT=${NTASKS_TOT:-$npe_efcs} + fi TYPE=${TYPE:-"nh"} # choices: nh, hydro MONO=${MONO:-"non-mono"} # choices: mono, non-mono diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index 4f4a5063e3..27d37b51d2 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -26,6 +26,14 @@ else coldstart=false fi +ATM_model=${ATM_model:-'fv3'} +OCN_model=${OCN_model:-'mom6'} +ICE_model=${ICE_model:-'cice'} + +ATMPETS=${ATMPETS:-8} +OCNPETS=${OCNPETS:-8} +ICEPETS=${ICEPETS:-8} + rm -f $DATA/nems.configure med_petlist_bounds=${med_petlist_bounds:-"0 $(( $ATMPETS-1 ))"} @@ -63,12 +71,12 @@ ice_petlist_bounds=${ice_petlist_bounds:-"$(( $ATMPETS+$OCNPETS )) $(( $ATMPETS+ # Copy the selected template into run directory cp $SCRIPTDIR/nems.configure.$confignamevarfornems.IN tmp1 sed -i -e "s;@\[med_model\];nems;g" tmp1 -sed -i -e "s;@\[atm_model\];fv3;g" tmp1 +sed -i -e "s;@\[atm_model\];$ATM_model;g" tmp1 sed -i -e "s;@\[med_petlist_bounds\];$med_petlist_bounds;g" tmp1 sed -i -e "s;@\[atm_petlist_bounds\];$atm_petlist_bounds;g" tmp1 if [ $cplflx = .true. ]; then - sed -i -e "s;@\[ocn_model\];mom6;g" tmp1 + sed -i -e "s;@\[ocn_model\];$OCN_model;g" tmp1 sed -i -e "s;@\[ocn_petlist_bounds\];$ocn_petlist_bounds;g" tmp1 sed -i -e "s;@\[DumpFields\];$DumpFields;g" tmp1 sed -i -e "s;@\[coldstart\];$coldstart;g" tmp1 @@ -80,7 +88,7 @@ if [ $cplwav = .true. ]; then sed -i -e "s;@\[wav_model\];ww3;g" tmp1 fi if [ $cplice = .true. ]; then - sed -i -e "s;@\[ice_model\];cice;g" tmp1 + sed -i -e "s;@\[ice_model\];$ICE_model;g" tmp1 sed -i -e "s;@\[ice_petlist_bounds\];$ice_petlist_bounds;g" tmp1 fi if [ $cplchem = .true. ]; then diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index 7d346fb2d2..304128c874 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -10,7 +10,7 @@ ## This script is a direct execution. ##### -Common_model_configure(){ +FV3_model_configure(){ rm -f model_configure cat > model_configure < model_configure < input.nml <> input.nml << EOF + ccpp_suite = ${CCPP_SUITE:-"FV3_GFS_v15"} +EOF +fi + +cat >> input.nml < input.nml < input.nml < input.nml <> input.nml << EOF + ltaerosol = ${ltaerosol:-".F."} + lradar = ${lradar:-".F."} + do_mynnedmf = ${do_mynnedmf:-".false."} + do_mynnsfclay= ${do_mynnsfclay:-".false."} + lsoil_lsm = ${lsoil_lsm:-"4"} + ttendlim = ${ttendlim:-0.005} + icloud_bl = ${icloud_bl:-"1"} + bl_mynn_edmf = ${bl_mynn_edmf:-"1"} + bl_mynn_tkeadvect=${bl_mynn_tkeadvect:-".true."} + bl_mynn_edmf_mom=${bl_mynn_edmf_mom:-"1"} +EOF +fi + +cat >> input.nml < input.nml < input.nml <> input.nml << EOF cplflx = $cplflx EOF +fi # Add namelist for IAU if [ $DOIAU = "YES" ]; then @@ -304,6 +344,7 @@ cat >> input.nml <> input.nml <> input.nml << EOF skeb = $SKEB iseed_skeb = ${ISEED_SKEB:-$ISEED} @@ -385,7 +426,7 @@ EOF EOF fi - if [ $DO_SHUM = "YES" ]; then + if [ $DO_SHUM = ".true." ]; then cat >> input.nml << EOF shum = $SHUM iseed_shum = ${ISEED_SHUM:-$ISEED} @@ -394,7 +435,7 @@ EOF EOF fi - if [ $DO_SPPT = "YES" ]; then + if [ $DO_SPPT = ".true." ]; then cat >> input.nml << EOF sppt = $SPPT iseed_sppt = ${ISEED_SPPT:-$ISEED} From c21ecc8f679c6e9d6e0143b9c4b19881393e35e5 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 9 Mar 2020 21:14:50 +0000 Subject: [PATCH 11/91] add stoch variables to config.fcst scripts update: CCPP and IPD works --- workflow/cases/coupled_free_forecast.yaml | 3 +++ workflow/config/efcs.yaml | 8 ++++---- workflow/config/fcst.yaml | 23 +++++++++++++++++++++++ workflow/defaults/fv3_gfs.yaml | 7 ++++--- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 3303f6c084..c779e79507 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -29,6 +29,9 @@ case: LEVS: 65 DELTIM: 450 nst_anl: no + DO_SKEB: true + DO_SHUM: false + DO_SPPT: true layout: x: 6 y: 8 diff --git a/workflow/config/efcs.yaml b/workflow/config/efcs.yaml index f6e8ad00a8..f14b4dbaa3 100644 --- a/workflow/config/efcs.yaml +++ b/workflow/config/efcs.yaml @@ -36,19 +36,19 @@ config_efcs: export NMEM_EFCSGRP={doc.data_assimilation.NMEM_EFCSGRP} export RERUN_EFCSGRP="{tools.YES_NO(doc.data_assimilation.RERUN_EFCSGRP)}" - # Stochastic physics parameters (only for ensemble forecasts) - export DO_SKEB="{tools.YES_NO(doc.fv3_enkf_settings.DO_SKEB)}" + # Stochastic physics parameters + export DO_SKEB="{tools.fort(doc.fv3_enkf_settings.DO_SKEB)}" export SKEB={doc.fv3_enkf_settings.SKEB} export SKEB_TAU={doc.fv3_enkf_settings.SKEB_TAU} export SKEB_LSCALE={doc.fv3_enkf_settings.SKEB_LSCALE} export SKEBNORM={doc.fv3_enkf_settings.SKEBNORM} export SKEB_NPASS={doc.fv3_enkf_settings.SKEB_NPASS} export SKEB_VDOF={doc.fv3_enkf_settings.SKEB_VDOF} - export DO_SHUM="{tools.YES_NO(doc.fv3_enkf_settings.DO_SHUM)}" + export DO_SHUM="{tools.fort(doc.fv3_enkf_settings.DO_SHUM)}" export SHUM={doc.fv3_enkf_settings.SHUM} export SHUM_TAU={doc.fv3_enkf_settings.SHUM_TAU} export SHUM_LSCALE={doc.fv3_enkf_settings.SHUM_LSCALE} - export DO_SPPT="{tools.YES_NO(doc.fv3_enkf_settings.DO_SPPT)}" + export DO_SPPT="{tools.fort(doc.fv3_enkf_settings.DO_SPPT)}" export SPPT={doc.fv3_enkf_settings.SPPT} export SPPT_TAU={doc.fv3_enkf_settings.SPPT_TAU} export SPPT_LSCALE={doc.fv3_enkf_settings.SPPT_LSCALE} diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 39c12daa55..04eb81f2fc 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -104,6 +104,29 @@ config_fcst: {more_exports_for_microphys} {level_127} + # Stochastic physics parameters + export SEEDLET=1 + export ISEED_SKEB=$((SDATE*1000 + SEEDLET*10 + 1)) + export ISEED_SHUM=$((SDATE*1000 + SEEDLET*10 + 2)) + export ISEED_SPPT=$((SDATE*1000 + SEEDLET*10 + 3)) + export DO_SKEB="{tools.fort(doc.fv3_gfs_settings.DO_SKEB)}" + export DO_SHUM="{tools.fort(doc.fv3_gfs_settings.DO_SHUM)}" + export DO_SPPT="{tools.fort(doc.fv3_gfs_settings.DO_SPPT)}" + + export skeb=0.6,-999,-999,-999,-999 + export iseed_skeb=$ISEED_SKEB + export skeb_tau=2.16E4,1.728E5,2.592E6,7.776E6,3.1536E7 + export skeb_lscale=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 + export skebnorm=1 + + export sppt=0.8,0.4,0.2,0.08,0.04 + export iseed_sppt=$ISEED_SPPT + export sppt_tau=2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7 + export sppt_lscale=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 + export sppt_logit=.TRUE. + export sppt_sfclimit=.true. + export use_zmtnblck=.true. + #--------------------------------------------------------------------- # Disable the use of coupler.res; get model start time from model_configure export USE_COUPLER_RES="NO" diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index 877e9779de..70775ecfd0 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -17,9 +17,10 @@ fv3_gfs_defaults: &fv3_gfs_defaults dddmp: 0.2 ISEED: 0 SET_STP_SEED: YES - DO_SHUM: NO - DO_SKEB: NO - DO_SPPT: NO + DO_SHUM: false + DO_SKEB: false + DO_SPPT: false + RUN_EFCSGRP: NO zhao_mic: YES nh_type: 'nh' From b8b757b17b2019be89d3e9aa55fc607627642f59 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 10 Mar 2020 14:12:34 +0000 Subject: [PATCH 12/91] capital case CDUMP values in config.fv3 --- workflow/config/fv3.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow/config/fv3.yaml b/workflow/config/fv3.yaml index c8d173fce6..5ea5b6ca7f 100644 --- a/workflow/config/fv3.yaml +++ b/workflow/config/fv3.yaml @@ -43,7 +43,7 @@ config_fv3: forecast_mode=$( echo "$1" | tr a-z A-Z ) case $forecast_mode in - "gfs") + "GFS") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_gfs_settings.DELTIM} export layout_x={doc.fv3_gfs_settings.layout.x} @@ -61,7 +61,7 @@ config_fv3: export WRTTASK_PER_GROUP_GFS={doc.fv3_gfs_settings.layout.WGRP_NTASKS} export WRTIOBUF={doc.fv3_gfs_settings.layout.WRTIOBUF} ;; - "gdas") + "GDAS") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_gdas_settings.DELTIM} export layout_x={doc.fv3_gdas_settings.layout.x} @@ -78,7 +78,7 @@ config_fv3: export WRTTASK_PER_GROUP_GFS={doc.fv3_gdas_settings.layout.WGRP_NTASKS} export WRTIOBUF={doc.fv3_gdas_settings.layout.WRTIOBUF} ;; - "enkf") + "ENKF") echo "BEGIN: config.fv3 for $forecast_mode" export DELTIM={doc.fv3_enkf_settings.DELTIM} export layout_x={doc.fv3_enkf_settings.layout.x} From 318d60876860cef192d44a684599c269b30014cf Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 11 Mar 2020 21:39:58 +0000 Subject: [PATCH 13/91] stochy variable namelist update, add hard-coded variables into config.fcst (fcst.yaml) --- scripts/exglobal_fcst_nemsfv3gfs.sh | 42 ++++++++++++-------- ush/forecast_postdet.sh | 2 +- ush/forecast_predet.sh | 2 +- ush/parsing_model_configure_FV3.sh | 6 ++- ush/parsing_namelists_FV3.sh | 61 +++++++++++++++-------------- workflow/config/fcst.yaml | 54 +++++++++++++++++-------- 6 files changed, 101 insertions(+), 66 deletions(-) diff --git a/scripts/exglobal_fcst_nemsfv3gfs.sh b/scripts/exglobal_fcst_nemsfv3gfs.sh index a64dc125fb..a1543754d7 100755 --- a/scripts/exglobal_fcst_nemsfv3gfs.sh +++ b/scripts/exglobal_fcst_nemsfv3gfs.sh @@ -188,23 +188,31 @@ echo "MAIN: NEMS configured" #------------------------------------------------------------------ # run the executable -$NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. -export OMP_NUM_THREADS=$NTHREADS_FV3 -$APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 -export ERR=$? -export err=$ERR -$ERRSCRIPT || exit $err +if [ $machine != 'sandbox' ]; then + $NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. + export OMP_NUM_THREADS=$NTHREADS_FV3 + $APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 + export ERR=$? + export err=$ERR + $ERRSCRIPT || exit $err +else + echo "MAIN: mpirun launch here" +fi -case $RUN in - 'data') data_out_Data_ATM;; - 'gfs') data_out_GFS;; - 'gdas') data_out_GFS;; - 'gefs') data_out_GEFS;; -esac -[[ $cplflx = .true. ]] && MOM6_out -[[ $cplwav = .true. ]] && WW3_out -[[ $cplice = .true. ]] && CICE_out -[[ $cplchem = .true. ]] && GSD_out +if [ $machine != 'sandbox' ]; then + case $RUN in + 'data') data_out_Data_ATM;; + 'gfs') data_out_GFS;; + 'gdas') data_out_GFS;; + 'gefs') data_out_GEFS;; + esac + [[ $cplflx = .true. ]] && MOM6_out + [[ $cplwav = .true. ]] && WW3_out + [[ $cplice = .true. ]] && CICE_out + [[ $cplchem = .true. ]] && GSD_out +else + echo "MAIN: Running on sandbox mode, no output linking" +fi echo "MAIN: Output copied to COMROT" #------------------------------------------------------------------ @@ -217,6 +225,6 @@ if [ $err != 0 ]; then exit $err else echo "MAIN: $confignamevarfornems Forecast completed at normal status" - if [ $mkdata = "YES" ]; then rm -rf $DATA; fi + if [ $KEEPDATA != "YES" ]; then rm -rf $DATA; fi exit 0 fi diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 0f8853fb0c..5483b9656d 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -615,7 +615,7 @@ CICE_postdet() year=$(echo $CDATE|cut -c 1-4) #BL2018 - stepsperhr=$((3600/$DT_CICE)) + stepsperhr=$((3600/$ICETIM)) #BL2018 nhours=$(${NHOUR} ${CDATE} ${SYEAR}010100) istep0=$((nhours*stepsperhr)) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 008d7c748e..3d215e248e 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -95,7 +95,7 @@ FV3_GFS_predet(){ # Model config options APRUN_FV3=${APRUN_FV3:-${APRUN_FCST:-${APRUN:-""}}} NTHREADS_FV3=${NTHREADS_FV3:-${NTHREADS_FCST:-${nth_fv3:-1}}} - cores_per_node=${cores_per_node:-${npe_node_max:-24}} + cores_per_node=${cores_per_node:-${npe_node_fcst:-24}} ntiles=${ntiles:-6} if [ $MEMBER -lt 0 ]; then NTASKS_TOT=${NTASKS_TOT:-$npe_fcst} diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index 304128c874..241e7ef135 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -13,7 +13,7 @@ FV3_model_configure(){ rm -f model_configure -cat > model_configure <> model_configure < model_configure <> model_configure <> input.nml <> input.nml -if [ $MEMBER -gt 0 ]; then +#if [ $MEMBER -gt 0 ]; then +if [ $DO_SPPT = .true. -o $DO_SHUM = .true. -o $DO_SKEB = .true. ]; then cat >> input.nml << EOF &nam_stochy @@ -470,5 +471,7 @@ EOF fi +$NCP input.nml $DATA/input.nml + echo "$(cat input.nml)" } diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 04eb81f2fc..a07f9e031f 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -85,26 +85,48 @@ config_fcst: # Model configuration export TYPE="{doc.fv3_gfs_settings.nh_type}" export MONO="{doc.fv3_gfs_settings.MONO}" - - # Use stratosphere h2o physics - export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}" - + export launch_level=27 + # Options of stratosphere O3 physics reaction coefficients export new_o3forc="{tools.YES_NO(doc.fv3_gfs_settings.new_o3force)}" - - # Microphysics configuration + + # fv3_core_nml section export dnats={doc.fv3_gfs_settings.phy_dependent_var.dnats} - export cal_pre="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.cal_pre)}" export do_sat_adj="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.do_sat_adjust)}" + export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} + + # gfs_physics_nml section + export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}" + + export ncld={doc.fv3_gfs_settings.phy_dependent_var.ncld} + + export IALB=1 + export IEMS=1 + export ISOL=2 + export IAER=111 + export ICO2=2 + + export icliq_sw=1 + export iovr_lw=1 + export iovr_sw=1 + export isubc_sw=2 + export isubc_lw=2 + + export cal_pre="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.cal_pre)}" + export hybedmf=.true. + export satmedmf=.false. + export isatmedmf=0 + export lheatstrg=.false. + export random_clds="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.random_clds)}" #export cnvcld="{tools.fort(doc.fv3_gfs_settings.cnvcld)}" - export ncld={doc.fv3_gfs_settings.phy_dependent_var.ncld} + export FIELD_TABLE="{doc.fv3_gfs_settings.phy_dependent_var.FIELD_TABLE}" - export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} {more_exports_for_microphys} {level_127} # Stochastic physics parameters + # nam_stochy section export SEEDLET=1 export ISEED_SKEB=$((SDATE*1000 + SEEDLET*10 + 1)) export ISEED_SHUM=$((SDATE*1000 + SEEDLET*10 + 2)) @@ -113,16 +135,16 @@ config_fcst: export DO_SHUM="{tools.fort(doc.fv3_gfs_settings.DO_SHUM)}" export DO_SPPT="{tools.fort(doc.fv3_gfs_settings.DO_SPPT)}" - export skeb=0.6,-999,-999,-999,-999 + export SKEB=0.6,-999,-999,-999,-999 export iseed_skeb=$ISEED_SKEB - export skeb_tau=2.16E4,1.728E5,2.592E6,7.776E6,3.1536E7 - export skeb_lscale=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 - export skebnorm=1 + export SKEB_TAU=2.16E4,1.728E5,2.592E6,7.776E6,3.1536E7 + export SKEB_LSCALE=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 + export SKEBNORM=1 - export sppt=0.8,0.4,0.2,0.08,0.04 + export SPPT=0.8,0.4,0.2,0.08,0.04 export iseed_sppt=$ISEED_SPPT - export sppt_tau=2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7 - export sppt_lscale=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 + export SPPT_TAU=2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7 + export SPPT_LSCALE=500.E3,1000.E3,2000.E3,2000.E3,2000.E3 export sppt_logit=.TRUE. export sppt_sfclimit=.true. export use_zmtnblck=.true. From 668182bb5300b5d26809ddf996b2dfc359138c05 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 13 Mar 2020 19:47:56 +0000 Subject: [PATCH 14/91] OCNTIM and ICETIM are included in config.fv3 ice variable istep0 bug fix --- ush/parsing_namelists_CICE.sh | 3 ++- ush/parsing_namelists_FV3.sh | 11 +++++++++-- ush/parsing_namelists_MOM6.sh | 2 ++ workflow/config/fv3.yaml | 6 ++++++ workflow/defaults/fv3_enkf.yaml | 3 +++ workflow/defaults/fv3_gdas.yaml | 3 +++ workflow/defaults/fv3_gfs.yaml | 3 +++ 7 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index ef2f6decbe..bd15375f11 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -7,7 +7,7 @@ cat > ice_in < ice_in <> input.nml <> input.nml <> input.nml < Date: Fri, 27 Mar 2020 15:55:06 -0500 Subject: [PATCH 15/91] stochastic variables update --- ush/forecast_postdet.sh | 10 ++++++---- ush/hpssarch_gen.sh | 4 ++-- ush/parsing_model_configure_FV3.sh | 9 +++++++-- ush/parsing_namelists_CICE.sh | 11 +++++------ ush/parsing_namelists_FV3.sh | 8 ++++++++ ush/parsing_namelists_MOM6.sh | 2 -- workflow/cases/coupled_free_forecast.yaml | 7 ++++--- workflow/config/fcst.yaml | 5 +---- workflow/defaults/default_resources.yaml | 4 ++-- workflow/defaults/fv3_gfs.yaml | 1 + 10 files changed, 36 insertions(+), 25 deletions(-) diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 5483b9656d..502b64511c 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -381,9 +381,9 @@ EOF # Stochastic Physics Options if [ ${SET_STP_SEED:-"YES"} = "YES" ]; then - ISEED_SKEB=$((CDATE*1000 + MEMBER*10 + 1)) - ISEED_SHUM=$((CDATE*1000 + MEMBER*10 + 2)) - ISEED_SPPT=$((CDATE*1000 + MEMBER*10 + 3)) + ISEED_SKEB=$((CDATE*1000 + SEEDLET*10 + 1)) + ISEED_SHUM=$((CDATE*1000 + SEEDLET*10 + 2)) + ISEED_SPPT=$((CDATE*1000 + SEEDLET*10 + 3)) else ISEED=${ISEED:-0} fi @@ -617,8 +617,10 @@ CICE_postdet() #BL2018 stepsperhr=$((3600/$ICETIM)) #BL2018 - nhours=$(${NHOUR} ${CDATE} ${SYEAR}010100) + #nhours=$(${NHOUR} ${CDATE} ${SYEAR}010100) + nhours=$($NHOUR $CDATE ${year}010100) istep0=$((nhours*stepsperhr)) + steps=$((nhours*stepsperhr)) npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work histfreq_n=${histfreq_n:-6} diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 9814e032af..1d5031f181 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -58,8 +58,8 @@ if [ $cpl = ".true." ]; then echo "${dirname}ocn*nc " >>ocn.txt echo "${dirname}ocn_ice*grb2 " >>ocn2.txt echo "${dirname}SST*nc " >>SST.txt - echo "${dirname}${head}flux.1p00.f${fhr} " >>gfs_flux_1p00.txt - echo "${dirname}${head}flux.1p00.f${fhr}.idx " >>gfs_flux_1p00.txt + echo "${dirname}${head}flux.1p00.f??? " >>gfs_flux_1p00.txt + echo "${dirname}${head}flux.1p00.f???.idx " >>gfs_flux_1p00.txt fi #.................. diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index 241e7ef135..40d8cf1b45 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -44,8 +44,7 @@ num_files: ${NUM_FILES:-2} filename_base: 'atm' 'sfc' output_grid: $OUTPUT_GRID output_file: $OUTPUT_FILE -ideflate: ${ideflate:-1} -nbits: ${nbits:-14} + write_nemsioflip: $WRITE_NEMSIOFLIP write_fsyncflag: $WRITE_FSYNCFLAG imo: $LONB_IMO @@ -64,6 +63,12 @@ atm_coupling_interval_sec: $DELTIM output_history: ${OUTPUT_HISTORY:-".true."} write_dopost: ${WRITE_DOPOST:-".false."} EOF +elif [ $cpl = .false. ]; then +cat >> model_configure < ice_in < ice_in < ice_in <> input.nml <> input.nml << EOF reiflag = ${reiflag:-"2"} +EOF +fi + +cat >> input.nml <> input.nml << EOF &nam_stochy + new_lscale = .true. ntrunc = $JCAP_STP lon_s = $LONB_STP lat_s = $LATB_STP diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index ff3aca36a0..da0653ae3d 100644 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -15,7 +15,5 @@ MOM6_namelists(){ / EOF -$NCP input.nml $DATA/input.nml - echo "$(cat input.nml)" } diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index c779e79507..597953f923 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -4,8 +4,8 @@ case: MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS settings: - SDATE: 2016-04-01t00:00:00 - EDATE: 2016-04-01t00:00:00 + SDATE: 2012-01-01t00:00:00 + EDATE: 2012-01-01t00:00:00 cplflx: .true. print_esmf: .true. @@ -20,7 +20,7 @@ case: OCN_INTERVAL: 24 FHOUT_GFS: 6 FHMIN_GFS: 0 - FHMAX_GFS: 72 + FHMAX_GFS: 840 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: -1 @@ -28,6 +28,7 @@ case: CASE: C384 LEVS: 65 DELTIM: 450 + SEEDLET: 10 nst_anl: no DO_SKEB: true DO_SHUM: false diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index a07f9e031f..3cac25615e 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -127,10 +127,7 @@ config_fcst: # Stochastic physics parameters # nam_stochy section - export SEEDLET=1 - export ISEED_SKEB=$((SDATE*1000 + SEEDLET*10 + 1)) - export ISEED_SHUM=$((SDATE*1000 + SEEDLET*10 + 2)) - export ISEED_SPPT=$((SDATE*1000 + SEEDLET*10 + 3)) + export SEEDLET="{doc.fv3_gfs_settings.SEEDLET}" export DO_SKEB="{tools.fort(doc.fv3_gfs_settings.DO_SKEB)}" export DO_SHUM="{tools.fort(doc.fv3_gfs_settings.DO_SHUM)}" export DO_SPPT="{tools.fort(doc.fv3_gfs_settings.DO_SPPT)}" diff --git a/workflow/defaults/default_resources.yaml b/workflow/defaults/default_resources.yaml index 3b41ebbbca..d8ed402bfe 100644 --- a/workflow/defaults/default_resources.yaml +++ b/workflow/defaults/default_resources.yaml @@ -40,9 +40,9 @@ gfs_resource_table: !Select gdasvrfy: [ 1, 1, !timedelta "03:00:00", null, null ] gfsvrfy: [ 5, 1, !timedelta "03:00:00", null, null ] gdasfcst_wall: !timedelta "00:15:00" - gfsfcst_wall: !timedelta "06:00:00" + gfsfcst_wall: !timedelta "08:00:00" coupfcst_medcold_wall: !timedelta "00:30:00" - coupfcst_wall: !timedelta "02:00:00" + coupfcst_wall: !timedelta "08:00:00" gdasfcst_ppn: !icalc doc.platform.partitions.default_exclusive.scheduler_settings.physical_cores_per_node gfsfcst_ppn: !icalc doc.platform.partitions.default_exclusive.scheduler_settings.physical_cores_per_node post_manager_wallclock_extra: !timedelta "00:15:00" diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index 07a27467fd..9b34912641 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -16,6 +16,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults d4_bg: 0.15 dddmp: 0.2 ISEED: 0 + SEEDLET: 1 SET_STP_SEED: YES DO_SHUM: false DO_SKEB: false From 9b660f326fc0cd976ffe61c277c1ae61c16b5c5b Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Mon, 30 Mar 2020 09:57:28 -0500 Subject: [PATCH 16/91] delete falseful copy after namelist and model_configure parsing add FNMSKH conditional clause, coupled vs non-coupled --- ush/forecast_postdet.sh | 6 +++++- ush/parsing_model_configure_FV3.sh | 2 -- ush/parsing_namelists_FV3.sh | 2 -- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 502b64511c..1309872621 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -261,7 +261,11 @@ EOF FNAISC=${FNAISC:-"$FIX_AM/CFSR.SEAICE.1982.2012.monthly.clim.grb"} FNTG3C=${FNTG3C:-"$FIX_AM/global_tg3clim.2.6x1.5.grb"} FNVEGC=${FNVEGC:-"$FIX_AM/global_vegfrac.0.144.decpercent.grb"} - FNMSKH=${FNMSKH:-"$FIX_AM/seaice_newland.grb"} + if [ $cpl = ".true." ]; then + export FNMSKH=${FNMSKH:-"$FIX_AM/seaice_newland.grb"} + else + export FNMSKH=${FNMSKH:-"$FIX_AM/global_slmask.t1534.3072.1536.grb"} + fi FNVMNC=${FNVMNC:-"$FIX_AM/global_shdmin.0.144x0.144.grb"} FNVMXC=${FNVMXC:-"$FIX_AM/global_shdmax.0.144x0.144.grb"} FNSLPC=${FNSLPC:-"$FIX_AM/global_slope.1x1.grb"} diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index 40d8cf1b45..8bf8ccc5a9 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -71,7 +71,5 @@ iau_offset: ${IAU_OFFSET:-0} EOF fi -$NCP model_configure $DATA/model_configure - echo "$(cat model_configure)" } diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index d0439431db..d7776db9e6 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -486,7 +486,5 @@ EOF fi -$NCP input.nml $DATA/input.nml - echo "$(cat input.nml)" } From 0b9c7920288734e4cd54cd418b7fc3efc6a1985d Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Tue, 31 Mar 2020 10:19:34 -0500 Subject: [PATCH 17/91] update on sandbox platform, for FIX_SCRUB settings --- workflow/platforms/_sandbox.yaml | 35 ++++++++------------------------ 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/workflow/platforms/_sandbox.yaml b/workflow/platforms/_sandbox.yaml index 3251393edb..c5f9dbc505 100644 --- a/workflow/platforms/_sandbox.yaml +++ b/workflow/platforms/_sandbox.yaml @@ -147,39 +147,22 @@ platform: !Platform # Path to mmlsquota, the program used to get GPFS disk usage information: #mmlsquota: "/usr/lpp/mmfs/bin/mmlsquota" - # Automatically detect the least used scrub area the user can access: - #least_used_ptmp: !Immediate - # - !FirstMax - # - do: /gpfs/hps3/ptmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps3-ptmp","hps3",mmlsquota) ) - # message: Use {do} for long-term temp. - # - do: /gpfs/hps/ptmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps-ptmp","hps",mmlsquota) ) - # message: Use {do} for long-term temp. - # - do: /gpfs/hps2/ptmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps2-ptmp","hps2",mmlsquota) ) - # message: Use {do} for long-term temp. - #least_used_stmp: !Immediate - # - !FirstMax - # - do: /gpfs/hps/stmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps-stmp","hps",mmlsquota) ) - # message: Use {do} for short-term temp. - # - do: /gpfs/hps2/stmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps2-stmp","hps2",mmlsquota) ) - # message: Use {do} for short-term temp. - # - do: /gpfs/hps3/stmp - # when: !calc ( int(tools.can_write(do)) * tools.gpfs_gb(do,"hps3-stmp","hps3",mmlsquota) ) - # message: Use {do} for short-term temp. - # long_term_temp - area for storage of data that must be passed # between jobs or shared with programs external to this workflow. - long_term_temp: !calc doc.user_places.EXPROOT + long_term_temp: !calc doc.user_places.COMROOT #!expand "{least_used_ptmp}/{tools.env('USER')}" # short_term_temp - area for data that is only needed within one job: - short_term_temp: !calc doc.user_places.EXPROOT + short_term_temp: !calc doc.user_places.DATAROOT #!expand "{least_used_stmp}/{tools.env('USER')}" # EXPROOT - Parent directory of the expdir (experiment directory) EXPROOT: !calc doc.user_places.EXPROOT + + # COMROOT - Parent directory of the expdir (experiment directory) + COMROOT: !calc doc.user_places.COMROOT + + # EXPROOT - Parent directory of the expdir (experiment directory) + DATAROOT: !calc doc.user_places.DATAROOT + #!expand "{doc.user_places.EXPROOT}/noscrub/{tools.env('USER')}" From a23e7d0e5f014222ffc5540c1d85513a1caf9dc3 Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Thu, 2 Apr 2020 13:13:27 -0500 Subject: [PATCH 18/91] turn off stochastic features in case file --- workflow/cases/coupled_free_forecast.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 597953f923..a87941a9a0 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -30,9 +30,9 @@ case: DELTIM: 450 SEEDLET: 10 nst_anl: no - DO_SKEB: true + DO_SKEB: false DO_SHUM: false - DO_SPPT: true + DO_SPPT: false layout: x: 6 y: 8 From 244bac0b5e8a4903cdee6b359db60c68cb291fd0 Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Mon, 6 Apr 2020 13:18:38 -0500 Subject: [PATCH 19/91] configuration update for CCPP scripts --- ush/parsing_namelists_FV3.sh | 20 ++++++++++---------- workflow/cases/coupled_free_forecast.yaml | 1 + workflow/config/base.yaml | 7 ++++--- workflow/config/fcst.yaml | 3 +++ workflow/defaults/fv3_enkf.yaml | 1 + workflow/defaults/fv3_gdas.yaml | 1 + workflow/defaults/fv3_gfs.yaml | 1 + 7 files changed, 21 insertions(+), 13 deletions(-) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index d7776db9e6..be0b62c324 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -205,16 +205,16 @@ EOF if [ $CCPP_SUITE = "FV3_GSD_v0" ]; then cat >> input.nml << EOF - ltaerosol = ${ltaerosol:-".F."} - lradar = ${lradar:-".F."} - do_mynnedmf = ${do_mynnedmf:-".false."} - do_mynnsfclay= ${do_mynnsfclay:-".false."} - lsoil_lsm = ${lsoil_lsm:-"4"} - ttendlim = ${ttendlim:-0.005} - icloud_bl = ${icloud_bl:-"1"} - bl_mynn_edmf = ${bl_mynn_edmf:-"1"} - bl_mynn_tkeadvect=${bl_mynn_tkeadvect:-".true."} - bl_mynn_edmf_mom=${bl_mynn_edmf_mom:-"1"} + ltaerosol = ${ltaerosol:-".F."} ! In config.fcst + lradar = ${lradar:-".F."} ! In config.fcst + do_mynnedmf = ${do_mynnedmf:-".false."} ! In config.fcst + do_mynnsfclay= ${do_mynnsfclay:-".false."} ! In config.fcst + lsoil_lsm = ${lsoil_lsm:-"4"} ! In config.fcst + ttendlim = ${ttendlim:-0.005} ! In config.fcst + icloud_bl = ${icloud_bl:-"1"} ! In config.fcst + bl_mynn_edmf = ${bl_mynn_edmf:-"1"} ! In config.fcst + bl_mynn_tkeadvect=${bl_mynn_tkeadvect:-".true."} ! In config.fcst + bl_mynn_edmf_mom=${bl_mynn_edmf_mom:-"1"} ! In config.fcst EOF fi diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 597953f923..5b515952d4 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -29,6 +29,7 @@ case: LEVS: 65 DELTIM: 450 SEEDLET: 10 + CCPP_SUITE: GFS nst_anl: no DO_SKEB: true DO_SHUM: false diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index ac646f4404..85464783c2 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -33,7 +33,6 @@ config_base: export nems_temp="{doc.settings.nems_temp}" export nems_temp_cold="{doc.settings.nems_temp_cold}" - # EMC parallel or NCO production export RUN_ENVIR="emc" @@ -44,7 +43,7 @@ config_base: export QUEUE_ARCH="{doc.accounting.service_partition.service_queue}" # Project to use in mass store: - HPSS_PROJECT={doc.accounting.hpss_project} + export HPSS_PROJECT={doc.accounting.hpss_project} # Directories relative to installation areas: export HOMEgfs="{doc.places.HOMEgfs}" @@ -77,6 +76,9 @@ config_base: {doc.platform.config_base_extras} export POSTGRB2TBL="{doc.places.HOMEgfs}/sorc/gfs_post.fd/parm/params_grib2_tbl_new" + # CCPP Configurations + export CCPP_SUITE="{doc.fv3_gfs_settings.CCPP_SUITE}" + # Toggle to turn on/off GFS downstream processing. export DO_BUFRSND="{tools.YES_NO(doc.downstream.DO_BUFRSND)}" # Run GFS_POSTSND export DO_GEMPAK="{tools.YES_NO(doc.downstream.DO_GEMPAK)}" # Run GFS GEMPAK @@ -110,7 +112,6 @@ config_base: # For coupled export UGCSsrc="/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post" - # Machine environment, jobs, and other utility scripts export BASE_ENV="$HOMEgfs/env" diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 3cac25615e..8be2a9239f 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -116,6 +116,9 @@ config_fcst: export hybedmf=.true. export satmedmf=.false. export isatmedmf=0 + tbf="" + if [ $satmedmf = ".true." ]; then tbf="_satmedmf" ; fi + export lheatstrg=.false. export random_clds="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.random_clds)}" diff --git a/workflow/defaults/fv3_enkf.yaml b/workflow/defaults/fv3_enkf.yaml index 786556c336..3ea1137725 100644 --- a/workflow/defaults/fv3_enkf.yaml +++ b/workflow/defaults/fv3_enkf.yaml @@ -2,6 +2,7 @@ fv3_enkf_defaults: &fv3_enkf_defaults CDUMP: gdas CASE: C192 LEVS: 65 + CCPP_SUITE: GFS FHCYC: 1 FHCYC_GDAS: 1 FHCYC_GFS: 24 diff --git a/workflow/defaults/fv3_gdas.yaml b/workflow/defaults/fv3_gdas.yaml index 2f0006cf17..586d5ab50c 100644 --- a/workflow/defaults/fv3_gdas.yaml +++ b/workflow/defaults/fv3_gdas.yaml @@ -1,6 +1,7 @@ fv3_gdas_defaults: &fv3_gdas_defaults CDUMP: gdas CASE: C384 + CCPP_SUITE: GFS LEVS: 65 FHCYC: 24 FHCYC_GDAS: 1 diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index 9b34912641..723c5f787e 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -2,6 +2,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults CDUMP: gfs CASE: C384 LEVS: 65 + CCPP_SUITE: GFS FHCYC: 24 FHCYC_GDAS: 1 FHCYC_GFS: 24 From 3fce0f5cc55ca57a810421cadd7c8e0f3a9fe271 Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Tue, 7 Apr 2020 11:22:34 -0500 Subject: [PATCH 20/91] generalize fix file directory for imp_physics 8 --- ush/forecast_postdet.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 1309872621..6e2dc8521c 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -200,9 +200,9 @@ EOF if [ $imp_physics -eq 8 ]; then $NCP $FV3INP/CCN_ACTIVATE.BIN CCN_ACTIVATE.BIN #### - $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/freezeH2O.dat freezeH2O.dat - $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/qr_acr_qg.dat qr_acr_qg.dat - $NCP /scratch1/NCEPDEV/stmp2/Lin.Gan/RUNDIRS/gsdsuite-NEW/2019100900/gfs/fcst.383441/qr_acr_qs.dat qr_acr_qs.dat + $NCP $FIX_AM/freezeH2O.dat . + $NCP $FIX_AM/qr_acr_qg.dat . + $NCP $FIX_AM/qr_acr_qs.dat . sleep 60 fi $NLN $FIX_AM/${O3FORC} $DATA/global_o3prdlos.f77 From fdb25959e99849b3f7b7eacb0d4221d8f09536b8 Mon Sep 17 00:00:00 2001 From: "Jian.Kuang" Date: Wed, 8 Apr 2020 14:13:46 -0500 Subject: [PATCH 21/91] reiflag default value changed to 1 --- ush/parsing_namelists_FV3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index be0b62c324..709a643589 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -354,7 +354,7 @@ cat >> input.nml <> input.nml << EOF - reiflag = ${reiflag:-"2"} + reiflag = ${reiflag:-"1"} EOF fi From 5035f6937c72282421e84aacb4f4f13aebb07533 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 17 Apr 2020 14:41:13 -0500 Subject: [PATCH 22/91] port to Orion --- .gitignore | 3 + Externals.cfg | 46 + env/GAEA.env | 64 - env/{THEIA.env => ORION.env} | 63 +- fix_atm/* | 1 - fix_atm/0readme | 1 - fix_atm/fix_am | 1 - fix_atm/fix_chem | 1 - fix_atm/fix_fv3 | 1 - fix_atm/fix_fv3_gmted2010 | 1 - fix_atm/fix_gsi | 1 - fix_atm/fix_gsi_MISSING | 1 - fix_atm/fix_orog | 1 - fix_atm/fix_verif | 1 - fix_atm/gdas/gdas_minmon_cost.txt | 1 - fix_atm/gdas/gdas_minmon_gnorm.txt | 1 - fix_atm/gdas/gdas_oznmon_base.tar | 1 - fix_atm/gdas/gdas_oznmon_satype.txt | 1 - fix_atm/gdas/gdas_radmon_base.tar | 1 - fix_atm/gdas/gdas_radmon_satype.txt | 1 - fix_atm/gdas/gdas_radmon_scaninfo.txt | 1 - fix_atm/product/awc_wafavn.grb1.cfg | 202 --- fix_atm/product/awc_wafavn.grb2.cfg | 191 --- fix_atm/product/gcip_gfs.cfg | 312 ---- fix_atm/product/gcip_near_ir_refl.table | 1480 ----------------- fix_atm/product/gfs_collective1.list | 293 ---- fix_atm/product/gfs_collective2.list | 385 ----- fix_atm/product/gfs_collective3.list | 216 --- fix_atm/product/gfs_collective4.list | 302 ---- fix_atm/product/gfs_collective5.list | 227 --- fix_atm/product/gfs_collective6.list | 157 -- fix_atm/product/gfs_collective7.list | 58 - fix_atm/product/gfs_collective8.list | 147 -- fix_atm/product/gfs_collective9.list | 134 -- fix_atm/product/gfs_minmon_cost.txt | 4 - fix_atm/product/gfs_minmon_gnorm.txt | 6 - fix_atm/product/wafs_admin_msg | 5 - modulefiles/OznMonBuild.orion | 17 + modulefiles/RadMonBuild.orion | 17 + modulefiles/fv3gfs/enkf_chgres_recenter.gaea | 19 - modulefiles/fv3gfs/enkf_chgres_recenter.hera | 12 - modulefiles/fv3gfs/enkf_chgres_recenter.theia | 14 - modulefiles/fv3gfs/enkf_chgres_recenter.wcoss | 13 - .../fv3gfs/enkf_chgres_recenter.wcoss_cray | 19 - .../enkf_chgres_recenter.wcoss_cray_userlib | 21 - .../fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 | 15 - modulefiles/fv3gfs/gaussian_sfcanl.gaea | 20 - modulefiles/fv3gfs/gaussian_sfcanl.hera | 17 - modulefiles/fv3gfs/gaussian_sfcanl.jet | 26 - modulefiles/fv3gfs/gaussian_sfcanl.theia | 19 - modulefiles/fv3gfs/gaussian_sfcanl.wcoss | 15 - modulefiles/fv3gfs/gaussian_sfcanl.wcoss_cray | 20 - .../fv3gfs/gaussian_sfcanl.wcoss_dell_p3 | 18 - modulefiles/fv3gfs/global_chgres.gaea | 24 - modulefiles/fv3gfs/global_chgres.jet | 41 - modulefiles/fv3gfs/global_cycle.gaea | 22 - modulefiles/fv3gfs/global_cycle.jet | 23 - modulefiles/fv3gfs/post/v7.0.0-gaea | 53 - modulefiles/fv3gfs/post/v7.0.0-jet | 61 - modulefiles/fv3gfs/post/v8.0.0-jet | 71 - modulefiles/fv3gfs/tropcy_NEMS.gaea | 19 - modulefiles/gdas_gridbull.gaea | 13 - modulefiles/gdas_gridbull.jet | 10 - modulefiles/gdas_gridbull.theia | 7 - modulefiles/gdas_navybull.jet | 13 - modulefiles/gdas_navybull.theia | 12 - modulefiles/gdas_trpsfcmv.gaea | 22 - modulefiles/gdas_trpsfcmv.jet | 16 - modulefiles/gdas_trpsfcmv.theia | 12 - modulefiles/gfs_bufr.gaea | 39 - modulefiles/gfs_bufr.orion | 26 + modulefiles/gfs_cnvgrib21_gfs.gaea | 22 - modulefiles/gfs_cnvgrib21_gfs.theia | 16 - ...chgres_recenter.jet => gfs_fbwndgfs.orion} | 11 +- modulefiles/gfs_fbwndgfs.theia | 14 - modulefiles/gfs_overpdtg2.gaea | 17 - modulefiles/gfs_overpdtg2.theia | 15 - modulefiles/gfs_wintemv.gaea | 13 - modulefiles/gfs_wintemv.theia | 12 - modulefiles/gsi/modulefile.ProdGSI.jet | 64 - modulefiles/gsi/setCompilerFlags.cmake | 175 -- modulefiles/module-run.gaea | 32 - modulefiles/module-service.gaea | 12 - modulefiles/module_base.gaea | 42 - modulefiles/module_base.orion | 34 + modulefiles/module_fcst.jet | 32 - modulefiles/module_nemsutil.gaea | 39 - modulefiles/module_nemsutil.hera | 10 - modulefiles/module_nemsutil.jet | 19 - modulefiles/module_nemsutil.theia | 15 - modulefiles/module_nemsutil.wcoss | 13 - modulefiles/module_nemsutil.wcoss_cray | 17 - .../module_nemsutil.wcoss_cray_userlib | 19 - modulefiles/module_nemsutil.wcoss_dell_p3 | 12 - modulefiles/modulefile.fv3nc2nemsio.orion | 17 + modulefiles/modulefile.fv3nc2nemsio.theia | 14 - .../modulefile.global_emcsfc_ice_blend.gaea | 19 - .../modulefile.global_emcsfc_ice_blend.jet | 20 - .../modulefile.global_emcsfc_snow2mdl.gaea | 20 - .../modulefile.global_emcsfc_snow2mdl.jet | 32 - modulefiles/modulefile.grib_util.jet | 18 - modulefiles/modulefile.grib_util.theia | 20 - modulefiles/modulefile.grib_util.wcoss | 32 - modulefiles/modulefile.grib_util.wcoss_cray | 22 - .../modulefile.grib_util.wcoss_cray_userlib | 22 - .../modulefile.grib_util.wcoss_dell_p3 | 15 - modulefiles/modulefile.prod_util.jet | 16 - modulefiles/modulefile.prod_util.theia | 8 - modulefiles/modulefile.prod_util.wcoss_cray | 11 - .../modulefile.prod_util.wcoss_cray_userlib | 13 - .../modulefile.prod_util.wcoss_dell_p3 | 6 - modulefiles/modulefile.regrid_nemsio.orion | 21 + modulefiles/modulefile.regrid_nemsio.theia | 16 - .../modulefile.storm_reloc_v5.1.0.gaea | 23 - modulefiles/modulefile.storm_reloc_v6.0.0.jet | 25 - .../modulefile.storm_reloc_v6.0.0.orion | 18 + .../modulefile.storm_reloc_v6.0.0.theia | 26 - modulefiles/modulefile.wgrib2.theia | 19 - modulefiles/modulefile.wgrib2.wcoss | 24 - modulefiles/modulefile.wgrib2.wcoss_cray | 13 - .../modulefile.wgrib2.wcoss_cray_userlib | 15 - modulefiles/modulefile.wgrib2.wcoss_dell_p3 | 11 - modulefiles/wafs_v5.0.0.dell | 37 - sorc/checkout.sh | 129 +- sorc/machine-setup.sh | 33 +- ush/load_fv3gfs_modules.sh | 7 +- workflow/cases/coupled_free_forecast.yaml | 1 + workflow/cases/free_forecast_case.yaml | 2 + workflow/defaults/settings.yaml | 1 + workflow/layout/free_forecast_gfs.yaml | 2 +- workflow/platforms/orion.yaml | 106 ++ 131 files changed, 441 insertions(+), 6126 deletions(-) create mode 100644 Externals.cfg delete mode 100755 env/GAEA.env rename env/{THEIA.env => ORION.env} (73%) delete mode 120000 fix_atm/* delete mode 120000 fix_atm/0readme delete mode 120000 fix_atm/fix_am delete mode 120000 fix_atm/fix_chem delete mode 120000 fix_atm/fix_fv3 delete mode 120000 fix_atm/fix_fv3_gmted2010 delete mode 120000 fix_atm/fix_gsi delete mode 120000 fix_atm/fix_gsi_MISSING delete mode 120000 fix_atm/fix_orog delete mode 120000 fix_atm/fix_verif delete mode 120000 fix_atm/gdas/gdas_minmon_cost.txt delete mode 120000 fix_atm/gdas/gdas_minmon_gnorm.txt delete mode 120000 fix_atm/gdas/gdas_oznmon_base.tar delete mode 120000 fix_atm/gdas/gdas_oznmon_satype.txt delete mode 120000 fix_atm/gdas/gdas_radmon_base.tar delete mode 120000 fix_atm/gdas/gdas_radmon_satype.txt delete mode 120000 fix_atm/gdas/gdas_radmon_scaninfo.txt delete mode 100755 fix_atm/product/awc_wafavn.grb1.cfg delete mode 100755 fix_atm/product/awc_wafavn.grb2.cfg delete mode 100644 fix_atm/product/gcip_gfs.cfg delete mode 100644 fix_atm/product/gcip_near_ir_refl.table delete mode 100755 fix_atm/product/gfs_collective1.list delete mode 100755 fix_atm/product/gfs_collective2.list delete mode 100755 fix_atm/product/gfs_collective3.list delete mode 100755 fix_atm/product/gfs_collective4.list delete mode 100755 fix_atm/product/gfs_collective5.list delete mode 100755 fix_atm/product/gfs_collective6.list delete mode 100755 fix_atm/product/gfs_collective7.list delete mode 100755 fix_atm/product/gfs_collective8.list delete mode 100755 fix_atm/product/gfs_collective9.list delete mode 100644 fix_atm/product/gfs_minmon_cost.txt delete mode 100644 fix_atm/product/gfs_minmon_gnorm.txt delete mode 100755 fix_atm/product/wafs_admin_msg create mode 100644 modulefiles/OznMonBuild.orion create mode 100644 modulefiles/RadMonBuild.orion delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.gaea delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.hera delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.theia delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.wcoss delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray_userlib delete mode 100644 modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.gaea delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.hera delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.jet delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.theia delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.wcoss delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.wcoss_cray delete mode 100644 modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 delete mode 100644 modulefiles/fv3gfs/global_chgres.gaea delete mode 100644 modulefiles/fv3gfs/global_chgres.jet delete mode 100644 modulefiles/fv3gfs/global_cycle.gaea delete mode 100644 modulefiles/fv3gfs/global_cycle.jet delete mode 100644 modulefiles/fv3gfs/post/v7.0.0-gaea delete mode 100644 modulefiles/fv3gfs/post/v7.0.0-jet delete mode 100644 modulefiles/fv3gfs/post/v8.0.0-jet delete mode 100644 modulefiles/fv3gfs/tropcy_NEMS.gaea delete mode 100644 modulefiles/gdas_gridbull.gaea delete mode 100644 modulefiles/gdas_gridbull.jet delete mode 100644 modulefiles/gdas_gridbull.theia delete mode 100644 modulefiles/gdas_navybull.jet delete mode 100644 modulefiles/gdas_navybull.theia delete mode 100644 modulefiles/gdas_trpsfcmv.gaea delete mode 100644 modulefiles/gdas_trpsfcmv.jet delete mode 100644 modulefiles/gdas_trpsfcmv.theia delete mode 100644 modulefiles/gfs_bufr.gaea create mode 100644 modulefiles/gfs_bufr.orion delete mode 100644 modulefiles/gfs_cnvgrib21_gfs.gaea delete mode 100644 modulefiles/gfs_cnvgrib21_gfs.theia rename modulefiles/{fv3gfs/enkf_chgres_recenter.jet => gfs_fbwndgfs.orion} (56%) delete mode 100644 modulefiles/gfs_fbwndgfs.theia delete mode 100644 modulefiles/gfs_overpdtg2.gaea delete mode 100644 modulefiles/gfs_overpdtg2.theia delete mode 100644 modulefiles/gfs_wintemv.gaea delete mode 100644 modulefiles/gfs_wintemv.theia delete mode 100644 modulefiles/gsi/modulefile.ProdGSI.jet delete mode 100644 modulefiles/gsi/setCompilerFlags.cmake delete mode 100644 modulefiles/module-run.gaea delete mode 100644 modulefiles/module-service.gaea delete mode 100644 modulefiles/module_base.gaea create mode 100644 modulefiles/module_base.orion delete mode 100644 modulefiles/module_fcst.jet delete mode 100644 modulefiles/module_nemsutil.gaea delete mode 100644 modulefiles/module_nemsutil.hera delete mode 100644 modulefiles/module_nemsutil.jet delete mode 100644 modulefiles/module_nemsutil.theia delete mode 100644 modulefiles/module_nemsutil.wcoss delete mode 100644 modulefiles/module_nemsutil.wcoss_cray delete mode 100644 modulefiles/module_nemsutil.wcoss_cray_userlib delete mode 100644 modulefiles/module_nemsutil.wcoss_dell_p3 create mode 100644 modulefiles/modulefile.fv3nc2nemsio.orion delete mode 100644 modulefiles/modulefile.fv3nc2nemsio.theia delete mode 100755 modulefiles/modulefile.global_emcsfc_ice_blend.gaea delete mode 100644 modulefiles/modulefile.global_emcsfc_ice_blend.jet delete mode 100755 modulefiles/modulefile.global_emcsfc_snow2mdl.gaea delete mode 100644 modulefiles/modulefile.global_emcsfc_snow2mdl.jet delete mode 100644 modulefiles/modulefile.grib_util.jet delete mode 100644 modulefiles/modulefile.grib_util.theia delete mode 100644 modulefiles/modulefile.grib_util.wcoss delete mode 100644 modulefiles/modulefile.grib_util.wcoss_cray delete mode 100644 modulefiles/modulefile.grib_util.wcoss_cray_userlib delete mode 100644 modulefiles/modulefile.grib_util.wcoss_dell_p3 delete mode 100755 modulefiles/modulefile.prod_util.jet delete mode 100644 modulefiles/modulefile.prod_util.theia delete mode 100644 modulefiles/modulefile.prod_util.wcoss_cray delete mode 100644 modulefiles/modulefile.prod_util.wcoss_cray_userlib delete mode 100644 modulefiles/modulefile.prod_util.wcoss_dell_p3 create mode 100644 modulefiles/modulefile.regrid_nemsio.orion delete mode 100644 modulefiles/modulefile.regrid_nemsio.theia delete mode 100644 modulefiles/modulefile.storm_reloc_v5.1.0.gaea delete mode 100644 modulefiles/modulefile.storm_reloc_v6.0.0.jet create mode 100644 modulefiles/modulefile.storm_reloc_v6.0.0.orion delete mode 100644 modulefiles/modulefile.storm_reloc_v6.0.0.theia delete mode 100644 modulefiles/modulefile.wgrib2.theia delete mode 100644 modulefiles/modulefile.wgrib2.wcoss delete mode 100644 modulefiles/modulefile.wgrib2.wcoss_cray delete mode 100644 modulefiles/modulefile.wgrib2.wcoss_cray_userlib delete mode 100644 modulefiles/modulefile.wgrib2.wcoss_dell_p3 delete mode 100755 modulefiles/wafs_v5.0.0.dell create mode 100644 workflow/platforms/orion.yaml diff --git a/.gitignore b/.gitignore index b2c92b483f..0bad7abe7e 100644 --- a/.gitignore +++ b/.gitignore @@ -124,6 +124,9 @@ sorc/wafs_cnvgrib2.fd sorc/wafs_gcip.fd sorc/wafs_makewafs.fd sorc/wafs_setmissing.fd +sorc/checkout-fv3_coupled.log +sorc/checkout-gsi.fd.log +sorc/fv3_coupled.fd/ ush/emcsfc_ice_blend.sh ush/emcsfc_snow.sh ush/fix_precip.sh diff --git a/Externals.cfg b/Externals.cfg new file mode 100644 index 0000000000..ccb0de6cf5 --- /dev/null +++ b/Externals.cfg @@ -0,0 +1,46 @@ +# External sub-modules of global-workflow + +[NEMSfv3gfs] +tag = gfs.v16_PhysicsUpdate +local_path = sorc/fv3gfs.fd +repo_url = ssh://vlab.ncep.noaa.gov:29418/NEMSfv3gfs +protocol = git +required = True + +[GSI] +hash = cb8f69d8 +local_path = sorc/gsi.fd +repo_url = ssh://vlab.ncep.noaa.gov:29418/ProdGSI +protocol = git +required = True + +[EMC_post] +hash = ba7e59b2 +local_path = sorc/gfs_post.fd +repo_url = https://github.com/NOAA-EMC/EMC_post.git +protocol = git +required = True + +[UFS_UTILS] +tag = v1.1.0 +local_path = sorc/ufs_utils.fd +repo_url = https://github.com/NOAA-EMC/UFS_UTILS.git +protocol = git +required = True + +[EMC_verif-global] +tag = verif_global_v1.5.0 +local_path = sorc/verif-global.fd +repo_url = https://github.com/NOAA-EMC/EMC_verif-global.git +protocol = git +required = True + +[EMC_gfs_wafs] +tag = gfs_wafs.v5.0.11 +local_path = sorc/gfs_wafs.fd +repo_url = https://github.com/NOAA-EMC/EMC_gfs_wafs.git +protocol = git +required = False + +[externals_description] +schema_version = 1.0.0 diff --git a/env/GAEA.env b/env/GAEA.env deleted file mode 100755 index b65e792256..0000000000 --- a/env/GAEA.env +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/ksh -x - -if [ $# -ne 1 ]; then - - echo "Must specify an input argument to set runtime environment variables!" - echo "argument can be any one of the following:" - echo "fcst post fv3ic" - #echo "anal fcst post vrfy" - #echo "eobs eupd ecen efcs epos" - exit 1 - -fi - -step=$1 - -# Cray information -export launcher="aprun" -export npe_node_max=24 -# TODO this is in platform.yaml should be 36 depending on partitions - -# Configure MPI environment -export OMP_NUM_THREADS=1 -export MPI_TYPE_DEPTH=20 -export OMP_STACKSIZE=512M -export OMP_NUM_THREADS=1 -export ESMF_RUNTIME_COMPLIANCECHECK=OFF:depth=4 -export LD_BIND_NOW=1 - -if [ $step = "fcst" ]; then - - nth_max=$(($npe_node_max / $npe_node_fcst)) - - export NTHREADS_FV3=${nth_fv3:-1} - [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max - export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher -j 1 -n ${npe_fv3:-$npe_fcst} -N $npe_node_fcst -d $NTHREADS_FV3 -cc depth" - - export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} - [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max - export APRUN_REGRID_NEMSIO="$launcher -j 1 -n $LEVS -N $npe_node_fcst -d $NTHREADS_REGRID_NEMSIO -cc depth" - - export NTHREADS_REMAP=${nth_remap:-1} - [[ $NTHREADS_REMAP -gt $nth_max ]] && export NTHREADS_REMAP=$nth_max - export APRUN_REMAP="$launcher -j 1 -n ${npe_remap:-$npe_fcst} -N $npe_node_fcst -d $NTHREADS_REMAP -cc depth" - -elif [ $step = "post" ]; then - - nth_max=$(($npe_node_max / $npe_node_post)) - - export NTHREADS_NP=${nth_np:-1} - [[ $NTHREADS_NP -gt $nth_max ]] && export NTHREADS_NP=$nth_max - export APRUN_NP="$launcher -j 1 -n ${npe_np:-$npe_post} -N $npe_node_post -d $NTHREADS_NP -cc depth" - - export NTHREADS_DWN=${nth_dwn:-1} - [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max - export APRUN_DWN="$launcher -j 1 -n $npe_dwn -N $npe_node_dwn -d $NTHREADS_DWN cfp" - -elif [ $step = "fv3ic" ]; then - - export NTHREADS_CHGRES=${nth_chgres:-$npe_node_max} - [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max - export APRUN_CHGRES="$launcher -j 1 -n 1 -N 1 -d $NTHREADS_CHGRES -cc depth" - -fi diff --git a/env/THEIA.env b/env/ORION.env similarity index 73% rename from env/THEIA.env rename to env/ORION.env index 6e2e6516fd..6a196fe2a1 100755 --- a/env/THEIA.env +++ b/env/ORION.env @@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then echo "Must specify an input argument to set runtime environment variables!" echo "argument can be any one of the following:" - echo "anal fcst post vrfy" + echo "anal fcst post vrfy metp" echo "eobs eupd ecen efcs epos" echo "postsnd awips gempak" exit 1 @@ -13,7 +13,7 @@ fi step=$1 -export npe_node_max=24 +export npe_node_max=40 export launcher="srun --export=ALL" # Configure MPI environment @@ -23,9 +23,14 @@ export MPI_BUFS_PER_HOST=2048 export MPI_GROUP_MAX=256 export MPI_MEMMAP_OFF=1 export MP_STDOUTMODE="ORDERED" +export KMP_AFFINITY=scatter export OMP_STACKSIZE=2048000 export NTHSTACK=1024000000 #export LD_BIND_NOW=1 + +ulimit -s unlimited +ulimit -a + export job=${PBS_JOBNAME:-$step} export jobid=${job}.${PBS_JOBID:-$$} @@ -35,13 +40,16 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export POE="NO" export BACK=${BACK:-"YES"} - export sys_tp="Cray-CS400" + export sys_tp="ORION" elif [ $step = "anal" ]; then + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO + nth_max=$(($npe_node_max / $npe_node_anal)) - export NTHREADS_GSI=${nth_gsi:-$nth_max} + export NTHREADS_GSI=${nth_anal:-$nth_max} [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max export APRUN_GSI="$launcher" @@ -52,17 +60,40 @@ elif [ $step = "anal" ]; then export NTHREADS_CYCLE=${nth_cycle:-12} [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max npe_cycle=${ntiles:-6} - export APRUN_CYCLE="$launcher" + export APRUN_CYCLE="$launcher -n $npe_cycle" + export NTHREADS_GAUSFCANL=1 npe_gausfcanl=${npe_gausfcanl:-1} - export APRUN_GAUSFCANL="$launcher" + + export APRUN_GAUSFCANL="$launcher -n $npe_gausfcanl" + +elif [ $step = "gldas" ]; then + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher -n $npe_gldas" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher -n $npe_gaussian" + +# Must run data processing with exactly the number of tasks as time +# periods being processed. + + npe_gldas_data_proc=$(($gldas_spinup_hours + 12)) + export APRUN_GLDAS_DATA_PROC="$launcher -n $npe_gldas_data_proc --multi-prog" elif [ $step = "eobs" ]; then + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO + nth_max=$(($npe_node_max / $npe_node_eobs)) - export NTHREADS_GSI=${nth_gsi:-$nth_max} + export NTHREADS_GSI=${nth_eobs:-$nth_max} [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max export APRUN_GSI="$launcher" @@ -70,7 +101,7 @@ elif [ $step = "eupd" ]; then nth_max=$(($npe_node_max / $npe_node_eupd)) - export NTHREADS_ENKF=${nth_enkf:-$nth_max} + export NTHREADS_ENKF=${nth_eupd:-$nth_max} [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max export APRUN_ENKF="$launcher" @@ -95,14 +126,14 @@ elif [ $step = "efcs" ]; then nth_max=$(($npe_node_max / $npe_node_efcs)) - export NTHREADS_FV3=${nth_fv3:-$nth_max} + export NTHREADS_FV3=${nth_efcs:-$nth_max} [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max export cores_per_node=$npe_node_max export APRUN_FV3="$launcher" export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max - export APRUN_REGRID_NEMSIO="$launcher" + export APRUN_REGRID_NEMSIO="$launcher $LEVS" elif [ $step = "post" ]; then @@ -132,6 +163,18 @@ elif [ $step = "ecen" ]; then [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max export APRUN_CALCINC="$launcher" +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + export APRUN_ESFC="$launcher -n $npe_esfc" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher -n $npe_esfc" + elif [ $step = "epos" ]; then nth_max=$(($npe_node_max / $npe_node_epos)) diff --git a/fix_atm/* b/fix_atm/* deleted file mode 120000 index 8a8846751e..0000000000 --- a/fix_atm/* +++ /dev/null @@ -1 +0,0 @@ -../sorc/gfs_wafs.fd/fix/* \ No newline at end of file diff --git a/fix_atm/0readme b/fix_atm/0readme deleted file mode 120000 index 03c4a42c4d..0000000000 --- a/fix_atm/0readme +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/0readme \ No newline at end of file diff --git a/fix_atm/fix_am b/fix_atm/fix_am deleted file mode 120000 index 3f1aeefb0c..0000000000 --- a/fix_atm/fix_am +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_am \ No newline at end of file diff --git a/fix_atm/fix_chem b/fix_atm/fix_chem deleted file mode 120000 index 22e2ff4126..0000000000 --- a/fix_atm/fix_chem +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_chem \ No newline at end of file diff --git a/fix_atm/fix_fv3 b/fix_atm/fix_fv3 deleted file mode 120000 index 5a8db21bb1..0000000000 --- a/fix_atm/fix_fv3 +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_fv3 \ No newline at end of file diff --git a/fix_atm/fix_fv3_gmted2010 b/fix_atm/fix_fv3_gmted2010 deleted file mode 120000 index a2e98d0b5e..0000000000 --- a/fix_atm/fix_fv3_gmted2010 +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_fv3_gmted2010 \ No newline at end of file diff --git a/fix_atm/fix_gsi b/fix_atm/fix_gsi deleted file mode 120000 index a714fa3b91..0000000000 --- a/fix_atm/fix_gsi +++ /dev/null @@ -1 +0,0 @@ -../sorc/gsi.fd/fix \ No newline at end of file diff --git a/fix_atm/fix_gsi_MISSING b/fix_atm/fix_gsi_MISSING deleted file mode 120000 index 5137329eff..0000000000 --- a/fix_atm/fix_gsi_MISSING +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_gsi_MISSING \ No newline at end of file diff --git a/fix_atm/fix_orog b/fix_atm/fix_orog deleted file mode 120000 index 356e312a9a..0000000000 --- a/fix_atm/fix_orog +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_orog \ No newline at end of file diff --git a/fix_atm/fix_verif b/fix_atm/fix_verif deleted file mode 120000 index 09d742e242..0000000000 --- a/fix_atm/fix_verif +++ /dev/null @@ -1 +0,0 @@ -/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_verif \ No newline at end of file diff --git a/fix_atm/gdas/gdas_minmon_cost.txt b/fix_atm/gdas/gdas_minmon_cost.txt deleted file mode 120000 index 40c584f930..0000000000 --- a/fix_atm/gdas/gdas_minmon_cost.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/fix/gdas_minmon_cost.txt \ No newline at end of file diff --git a/fix_atm/gdas/gdas_minmon_gnorm.txt b/fix_atm/gdas/gdas_minmon_gnorm.txt deleted file mode 120000 index f0e97fe8b6..0000000000 --- a/fix_atm/gdas/gdas_minmon_gnorm.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/fix/gdas_minmon_gnorm.txt \ No newline at end of file diff --git a/fix_atm/gdas/gdas_oznmon_base.tar b/fix_atm/gdas/gdas_oznmon_base.tar deleted file mode 120000 index 70b5f227f5..0000000000 --- a/fix_atm/gdas/gdas_oznmon_base.tar +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_base.tar \ No newline at end of file diff --git a/fix_atm/gdas/gdas_oznmon_satype.txt b/fix_atm/gdas/gdas_oznmon_satype.txt deleted file mode 120000 index e920d6d00c..0000000000 --- a/fix_atm/gdas/gdas_oznmon_satype.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_satype.txt \ No newline at end of file diff --git a/fix_atm/gdas/gdas_radmon_base.tar b/fix_atm/gdas/gdas_radmon_base.tar deleted file mode 120000 index bbed18bce0..0000000000 --- a/fix_atm/gdas/gdas_radmon_base.tar +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_base.tar \ No newline at end of file diff --git a/fix_atm/gdas/gdas_radmon_satype.txt b/fix_atm/gdas/gdas_radmon_satype.txt deleted file mode 120000 index 6d924ac454..0000000000 --- a/fix_atm/gdas/gdas_radmon_satype.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_satype.txt \ No newline at end of file diff --git a/fix_atm/gdas/gdas_radmon_scaninfo.txt b/fix_atm/gdas/gdas_radmon_scaninfo.txt deleted file mode 120000 index a345d79d0a..0000000000 --- a/fix_atm/gdas/gdas_radmon_scaninfo.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_scaninfo.txt \ No newline at end of file diff --git a/fix_atm/product/awc_wafavn.grb1.cfg b/fix_atm/product/awc_wafavn.grb1.cfg deleted file mode 100755 index 434050125e..0000000000 --- a/fix_atm/product/awc_wafavn.grb1.cfg +++ /dev/null @@ -1,202 +0,0 @@ -# waf.cfg - for Grib 1 -# last update: 11/05/09: commented out embedded CB sections, -# added IP and CAT levels, fixed level types for CB -# 08/20/14: commented out icing algorithm - -############################################################## -# pds definitions for all products -# the *_mean_gparms%msng and *_max_gparms%msng values must -# be equal -[icng_mean_gparms] -pds5 = 168 -pds6 = 100 -pds22 = 2 -missing = -0.01 -use_bitmap = no - -[icng_max_gparms] -pds5 = 169 -pds6 = 100 -pds22 = 2 -missing = -0.01 -use_bitmap = no - -[tcld_mean_gparms] -pds5 = 170 -pds6 = 100 -pds22 = 6 -missing = -0.004 -use_bitmap = no - -[tcld_max_gparms] -pds5 = 171 -pds6 = 100 -pds22 = 6 -missing = -0.004 -use_bitmap = no - -[cat_mean_gparms] -pds5 = 172 -pds6 = 100 -pds22 = 3 -missing = -0.5 -use_bitmap = no - -[cat_max_gparms] -pds5 = 173 -pds6 = 100 -pds22 = 5 -missing = -0.5 -use_bitmap = no - -[cb_cover_gparms] -pds5 = 174 -pds6 = 200 -pds22 = 3 -missing = -0.1 -use_bitmap = yes - -[cb_hgt_bot_gparms] -pds5 = 179 -pds6 = 216 -pds22 = 4 -missing = -0.5 -use_bitmap = yes - -[cb_hgt_top_gparms] -pds5 = 180 -pds6 = 217 -pds22 = 4 -missing = -0.5 -use_bitmap = yes - -#[cb_embd_hgt_bot_gparms] -#pds5 = 181 -#pds6 = 100 -#pds22 = 5 -#missing = -0.5 -#use_bitmap = yes - -#[cb_embd_hgt_top_gparms] -#pds5 = 182 -#pds6 = 100 -#pds22 = 5 -#missing = -0.5 -#use_bitmap = yes - -############################################################## -# average cell half-size: dp [mb], dxdy [km] -[icng_cell] -dp = 50 -dxdy = 70 - -[cat_cell] -dp = 0 -dxdy = 70 - -[tcld_cell] -dp = 50 -dxdy = 70 - -[cb_cell] -dp = 0 -dxdy = 70 - -############################################################## -# pressure levels for icing and turbulence [hPa] -[icng_levels] -p = 800 700 600 500 400 300 - -[tcld_levels] -p = 700 600 500 400 300 - -[cat_levels] -p = 400 350 300 250 200 150 - -############################################################## -# pressure levels to read from input file [hPa] -[pressure_range] -bottom = 850 -top = 125 - -[pcp_to_cover] -# x - convective precipitation [1.0e6*kg/(m2s)] -# y - cloud cover fraction, between 0 and 1 -# These are original values from Slingo (Table 1): -# c = -.006 + 0.125*log(p) -#x = 1.6 3.6 8.1 18.5 39.0 89.0 197.0 440.0 984.0 10000.0 -#y = 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.8 -point = 1.6 0.0 -point = 38.0 0.0 -point = 39.0 0.1 -point = 984.0 0.8 -point = 10000.0 1.0 - -############################################################## -# icing algorithm parameters -# temperature [deg C] -[icng_temp] -point = -25.0 0.0 -point = -20.0 0.1 -point = -14.0 0.3 -point = -8.0 1.0 -point = -3.0 1.0 -point = -1.0 0.5 -point = 0.0 0.0 - -[icng_conv_temp] -# CIP values -#x = -30.0 -10.0 -3.0 -1.0 1.0 -#y = 0.0 1.0 1.0 0.5 0.0 -point = -25.0 0.0 -point = -20.0 0.1 -point = -14.0 0.3 -point = -8.0 1.0 -point = -3.0 1.0 -point = -1.0 0.5 -point = 0.0 0.0 - -[icng_min_cloud_cover] -cover = 0.1 - -# fraction [0, 1] -[icng_cloud_cover] -point = 0.0 0.0 -point = 0.1 0.0 -point = 1.0 1.0 -point = 2.0 1.0 - -[icng_cloud_top_temp] -#x = -100.0 -30.0 -12.0 50.0 -#y = 0.2 0.3 1.0 1.0 -point = -100.0 0.2 -point = -30.0 0.3 -point = -12.0 1.0 -point = 20.0 1.0 - -# [1e-6 Pa/s], values between -1 and 1 -[icng_vert_velocity] -point = -10.0 0.2 -point = -0.5 0.2 -point = 0.0 0.0 -point = 0.25 -0.3 -point = 10.0 -0.3 - -############################################################## -# in-cloud turbulence thresholds -# fraction [0, 1] -[tcld_parms] -min_cloud_cover = 0.1 -# must be /= missing -nocloud_value = -0.002 - -############################################################## -# CB algorithm parameters -[cb_parms] -# depth of CB cloud [hPa] -cloud_min_depth = 300 -# pressure at the top of CB cloud [hPa] -cloud_min_top = 400 -# minimum low cloud cover for CB to be considered for -# embedded CB [%] -low_cloud_cover = 80 diff --git a/fix_atm/product/awc_wafavn.grb2.cfg b/fix_atm/product/awc_wafavn.grb2.cfg deleted file mode 100755 index d6406b42b4..0000000000 --- a/fix_atm/product/awc_wafavn.grb2.cfg +++ /dev/null @@ -1,191 +0,0 @@ -# waf.cfg - for Grib 2 -# last update: 08/12/2014 - -############################################################## -# Grib2 pdt definitions for all products -# the *_mean_gparms%msng and *_max_gparms%msng values must -# be equal -[icng_mean_gparms] -npdt = 15 -icat = 19 -iprm = 20 -ilev = 100 -stat = 0 -ndrt = 40 -drt2 = 0 -drt3 = 2 -drt4 = 7 -missing = -0.01 -use_bitmap = no - -[icng_max_gparms] -npdt = 15 -icat = 19 -iprm = 20 -ilev = 100 -stat = 2 -ndrt = 40 -drt2 = 0 -drt3 = 2 -drt4 = 7 -missing = -0.01 -use_bitmap = no - -[tcld_mean_gparms] -npdt = 15 -icat = 19 -iprm = 21 -ilev = 100 -stat = 0 -ndrt = 40 -drt2 = 0 -drt3 = 6 -drt4 = 15 -missing = -0.004 -use_bitmap = no - -[tcld_max_gparms] -npdt = 15 -icat = 19 -iprm = 21 -ilev = 100 -stat = 2 -ndrt = 40 -drt2 = 0 -drt3 = 6 -drt4 = 16 -missing = -0.004 -use_bitmap = no - -[cat_mean_gparms] -npdt = 15 -icat = 19 -iprm = 22 -ilev = 100 -stat = 0 -ndrt = 40 -drt2 = 0 -drt3 = 3 -drt4 = 15 -missing = -0.5 -use_bitmap = no - -[cat_max_gparms] -npdt = 15 -icat = 19 -iprm = 22 -ilev = 100 -stat = 2 -ndrt = 40 -drt2 = 0 -drt3 = 3 -drt4 = 15 -missing = -0.5 -use_bitmap = no - -[cb_cover_gparms] -npdt = 0 -icat = 6 -iprm = 25 -ilev = 10 -stat = -1 -ndrt = 40 -drt2 = 0 -drt3 = 3 -drt4 = 10 -missing = -0.1 -use_bitmap = no - -[cb_hgt_bot_gparms] -npdt = 0 -icat = 3 -iprm = 3 -ilev = 11 -stat = -1 -ndrt = 40 -drt2 = 13 -drt3 = 5 -drt4 = 16 -missing = -0.5 -use_bitmap = yes - -[cb_hgt_top_gparms] -npdt = 0 -icat = 3 -iprm = 3 -ilev = 12 -stat = -1 -ndrt = 40 -drt2 = 14 -drt3 = 5 -drt4 = 16 -missing = -0.5 -use_bitmap = yes - -############################################################## -# average cell half-size: dp [mb], dxdy [km] -[icng_cell] -# icing available on selected levels, so no average on vertical levels. -dp = 50 -dxdy = 70 - -[cat_cell] -dp = 0 -dxdy = 70 - -[tcld_cell] -dp = 50 -dxdy = 70 - -[cb_cell] -dp = 0 -dxdy = 70 - -############################################################## -# pressure levels for icing and turbulence [hPa] -[icng_levels] -p = 800 700 600 500 400 300 - -[tcld_levels] -p = 700 600 500 400 300 - -[cat_levels] -p = 400 350 300 250 200 150 - -############################################################## -# pressure levels to read from input file [hPa] -[pressure_range] -bottom = 850 -top = 125 - -[pcp_to_cover] -# x - convective precipitation [1.0e6*kg/(m2s)] -# y - cloud cover fraction, between 0 and 1 -# These are original values from Slingo (Table 1): -# c = -.006 + 0.125*log(p) -#x = 1.6 3.6 8.1 18.5 39.0 89.0 197.0 440.0 984.0 10000.0 -#y = 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.8 -point = 1.6 0.0 -point = 38.0 0.0 -point = 39.0 0.1 -point = 984.0 0.8 -point = 10000.0 1.0 - -############################################################## -# in-cloud turbulence thresholds -# fraction [0, 1] -[tcld_parms] -min_cloud_cover = 0.1 -# must be /= missing -nocloud_value = -0.002 - -############################################################## -# CB algorithm parameters -[cb_parms] -# depth of CB cloud [hPa] -cloud_min_depth = 300 -# pressure at the top of CB cloud [hPa] -cloud_min_top = 400 -# minimum low cloud cover for CB to be considered for -# embedded CB [%] -low_cloud_cover = 80 diff --git a/fix_atm/product/gcip_gfs.cfg b/fix_atm/product/gcip_gfs.cfg deleted file mode 100644 index e0012cccd3..0000000000 --- a/fix_atm/product/gcip_gfs.cfg +++ /dev/null @@ -1,312 +0,0 @@ -#GCIP configurations - -#Rule 1: the maximum of each line is 256 characters. -#Rule 2: if 256 is reached but parameter inputs are not fininsed, -# a new line starting with ',' CONTINUES. -#Rule 3: this file must end with a blank line or a '#' line - -#Parameters are defined in groups, which are named 'sections'. -#Sections begin with in [], end by new blank lines or -# lines start with '#' -# lines start with '[' -# lines with '=' (insde a section) - -#Including regular variable types, there are other three: -#Array: seperated by spaces, no ','; continued by prefix '+' -#1: varName = value1 value2 value3 -#map2D: two values delimited by ','; continued by prefix ',' -#2: varName = value1 value11, value2 value22 -#map3D: three values delimited by ','; continued by prefix ',' -#3: varName = value1 value11 value111, value2 value22 value222 -# , value3 value33 value333 - -#Built in Nov 2011 from NCAR's CIP delivered on 7/25/2009 -#--Yali Mao (Nov 2011) -#-- Modified by Yali Mao 01/14/2015 - - -############################################################### -################# Model ############################# -############################################################### - -# Which Model -[model] -name = GFS -# -# Grib 1 or Grib 2. Input and output use the same Grib number -grib = 2 - -# vertical levels -[levels] -# This is the surface pressure. Units are mBars. -max_pressure = 1000 -# -# pressure interval from the level right below -pressure_step = -25 -# -# number of pressure levels -num_pressure = 37 -# -# number of hybrid levels (only for RAP) -num_hybrid = 50 - -############################################################### -################# Hybrid2Pressure ########################### -############################################################### - -[Hybrid2Pressure] -# The vertical index to begin below surface extrapolation. -# In C/C++, make default 3 to account for 0-based arrays. -below_ground_level_index = 4 -# -# The top level index for computing lapse rate. -# In C/C++, make default 4 to account for 0-based arrays. -lapse_rate_top_index = 5 -# -# Number of levels from at top of atmosphere. -extrapolate_offset = 3 -# - -[Smooth_Info] -#geopotentialHeight -field_name = HGT -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 3 2 2 2 2 2 2 3 -smoothFactor = 0.5 -#virtualPotentialTemperature -field_name = VPT -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 2 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#pressureVerticalVelocity -field_name = PVV -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#waterVaporMixingRatio -field_name = WVM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#cloudWaterMixingRatio -field_name = CWM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#rainWaterMixingRatio -field_name = RWM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#snowMixingRatio -field_name = SNM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#iceMixingRatio -field_name = ICM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 -#graupelMixingRatio -field_name = GPM -extrap_at_top = TRUE -smooth = TRUE -smoothPasses = 1 1 1 1 1 1 1 1 -smoothFactor = 0.5 - -############################################################### -################# Pressure2Flight ########################### -############################################################### -# for Pressure2Flight -[Pressure2Flight] -num_flight_levels = 30 -# -# In foot. But will convert to metar in the final output -start_flight_level = 1000 -flight_level_dz = 1000 -# -sld_special_value = -0.1 - -# for Severity category -[SeverityCategory] -# Notes: -# 1 = trace -# 2 = light -# 3 = moderate -# 4 = heavy -#severity_category_map = 0.0 0, 0.25 1, 0.425 2, 0.75 3, 1 4 -severity_category_map = 0.0 0, 0.175 1, 0.375 2, 0.7 3, 1 4 - -############################################################### -################# METAR ############################# -############################################################### - -[METAR_PARAMS] -#Metar station radius of influence (km) -radiusOfInfluence = 125.0 -# -#Processing limits (km) for cloud algorithms. -#Processing begins with distance from the nearest to the farthest. -weatherProcessingLimits = 40.0 60.0 80.0 100.0 125.0 -# -#minimum number of metar reports needed to produce results -minNumMetars = 8 -# -#Time range/window of the run time for Metar BUFR data, in minutes -timeWindow = -60 30 - -############################################################### -################# satellite ############################# -############################################################### - -# CALIBRATION CURVE PARAMETERS -[Sat_Calibration] -#VIS -name = VIS -unit = Percent -min = 0.0 -max = 100.0 -bad_input_values = 0 255 -x_values = 255 -offset_coeffs = 0.0 -linear_coeffs = 0.0 -quadratic_coeffs = 0.00153787 -# -#3.9 -name = 3.9 -unit = Celsius -min = 0.0 -max = 0.0 -bad_input_values = 0 255 -x_values = 175 255 -offset_coeffs = 56.84 144.84 -linear_coeffs = -0.5 -1.0 -quadratic_coeffs = 0.0 0.0 -# -#IR -name = IR -unit = Celsius -min = 0.0 -max = 0.0 -bad_input_values = 0 255 -x_values = 175 255 -offset_coeffs = 56.84 144.84 -linear_coeffs = -0.5 -1.0 -quadratic_coeffs = 0.0 0.0 - -[Sat_Mosaic] -# data format -format = MCIDAS -#format = NETCDF -# -# model's resolution / satellite's resolution -nfiner = 3 -# -#satellite sources: preset values and the corresponsing longitudes -# https://www.ssec.wisc.edu/mcidas/doc/users_guide/2010.1/app_c-1.html -# GOES-E GOES-W MTSAT-1 MTSAT-2 METEOSAT HIMAWARI-8 -satellite_source = 180 -75.0, 184 -135.0, 84 145.0, 85 145.0, 51 0.0, 86 140.7 -# Fortran code has taken care of the well known SS numbers - -# for SatDerive -[Sat_Derive] -shortwaveLUTTable = ./near_ir_refl.table -micron_110ShortwaveReflThreshold = -60.0 -solarAngleMax = 80 - -############################################################### -################# PIREP ############################# -############################################################### - -[Pirep_Params] -#Time range/window of the run time for Pirep BUFR data, in minutes -timeWindow = -60 30 - -############################################################### -################# lightning ############################# -############################################################### - -[Lightning_Params] -#Lightning effect radius in grid units. (rate) -# Size of area affected by a single lightning strike. If set to 0, -# only the grid square in which the lightning strike occurred will -# include the strike. If set higher, any grid square whose center lies -# in the circle of the given radius from the center of the grid square -# in which the strike occurred will be affected by the strike (its -# total will be incremented). -# Minimum val: 0 -ltg_radius = 0 -# -# Maximum radius/distance to lightning strike. (distance) -# The units are kilometers. -max_strike_radius = 50.00 -# -# Indicates the polarity of the lightning strikes to be included in the -# resulting grids. -# Options: -# POS: POLAR_POS -# NEG: POLAR_NEG -# BTH: POLAR_BOTH -polarity_flag = BTH -# -# Minimum amplitude for strikes to be included in the resulting grids. -# If less than zero, no minimum amplitude is used. -min_amplitude = -1 -# -# Maximum amplitude for strikes to be included in the resulting grids. -# If less than zero, no maximum amplitude is used. -max_amplitude = -1 -# -#Time range/window of the run time for Lightning BUFR data, in minutes -timeWindow = -60 30 - -############################################################### -################# Radar ############################# -############################################################### - -[Unisys] -valid_source_id = 10000 -data_scale = 1.0 -data_bias = 0.0 -# -#projection number in terms of kgds(1) of GRIB 1 -#3 - PROJ_LAMBERT_CONF -igrid = 3 -# -# Other projection information -lambert_lat1 = 33.0 -lambert_lat2 = 45.0 - -[NSSL] -#In-house GRIB data -# -# base reflectivity (3D) -nz_base = 31 -pds7_base = 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000 - + 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 8500 - + 9000 10000 11000 12000 13000 14000 15000 16000 18000 -# Composite (2D) -# n/a - -[RadarProcessing] -# which radar source to be used -radar_source = NSSL -# -# model's resolution / radar's resolution -nfiner = 3 -# -# "dBz 25th percetile" and "dBz 75th percetile" -percentiles = 25.0 75.0 -minVipPoints = 10 -minDBzPoints = 10 - -# end of file diff --git a/fix_atm/product/gcip_near_ir_refl.table b/fix_atm/product/gcip_near_ir_refl.table deleted file mode 100644 index d54647f60f..0000000000 --- a/fix_atm/product/gcip_near_ir_refl.table +++ /dev/null @@ -1,1480 +0,0 @@ - 99.9999 99.9999 99.9999 99.9999 99.9999 99.9999 73.1917 44.3441 26.9059 17.8259 14.2404 13.6651 14.1689 14.4760 13.9688 12.5894 10.6595 8.6604 7.0249 5.9918 5.5520 5.4909 5.5011 5.3201 4.8369 4.1261 3.3927 2.8532 2.6097 2.5869 2.5778 2.3865 1.9847 1.5554 1.3394 1.3613 1.3216 0.9821 0.7633 0.7132 - 99.9999 99.9999 99.9999 99.9999 99.9999 85.7499 54.1007 33.5823 21.6788 15.9311 14.0488 14.0793 14.5521 14.5544 13.7200 12.1310 10.1517 8.2362 6.7535 5.8734 5.5372 5.5118 5.5015 5.2743 4.7524 4.0315 3.3188 2.8158 2.6032 2.5912 2.5728 2.3659 1.9585 1.5386 1.3372 1.3635 1.3170 0.9754 0.7640 0.7120 - 99.9999 99.9999 99.9999 78.0400 53.5642 36.5531 25.4834 19.0620 16.0061 15.0647 15.1201 15.2936 15.0195 14.0665 12.5010 10.5971 8.7148 7.1740 6.1587 5.6724 5.5573 5.5654 5.4571 5.0924 4.4784 3.7551 3.1204 2.7265 2.5952 2.6026 2.5503 2.2991 1.8806 1.4927 1.3333 1.3697 1.3019 0.9556 0.7664 0.7083 - 65.4466 46.1952 35.4712 28.4704 23.7928 20.8059 19.0513 18.0968 17.5268 16.9785 16.1870 15.0177 13.4763 11.6909 9.8686 8.2349 6.9698 6.1580 5.7675 5.6628 5.6502 5.5424 5.2205 4.6729 3.9950 3.3456 2.8734 2.6451 2.6068 2.6084 2.4870 2.1740 1.7568 1.4308 1.3345 1.3771 1.2731 0.9243 0.7711 0.7021 - 55.9461 40.9955 33.5814 28.9115 25.5572 22.9203 20.6856 18.6626 16.7357 14.8491 13.0008 11.2343 9.6239 8.2539 7.1928 6.4702 6.0620 5.8888 5.8306 5.7554 5.5534 5.1693 4.6190 3.9849 3.3875 2.9391 2.6957 2.6289 2.6322 2.5694 2.3484 1.9844 1.6057 1.3745 1.3471 1.3791 1.2260 0.8844 0.7789 0.6935 - 49.1467 34.9892 27.8165 23.1228 19.6207 16.8176 14.4929 12.5379 10.8964 9.5385 8.4474 7.6096 7.0068 6.6092 6.3715 6.2332 6.1238 5.9732 5.7254 5.3518 4.8598 4.2944 3.7282 3.2416 2.8974 2.7163 2.6644 2.6602 2.6040 2.4228 2.1119 1.7498 1.4636 1.3471 1.3705 1.3638 1.1571 0.8412 0.7904 0.6825 - 27.0257 19.9361 16.2365 13.8019 12.0188 10.6524 9.5933 8.7785 8.1619 7.7028 7.3615 7.0982 6.8729 6.6479 6.3899 6.0745 5.6891 5.2365 4.7358 4.2204 3.7332 3.3182 3.0094 2.8201 2.7360 2.7139 2.6916 2.6062 2.4184 2.1332 1.8069 1.5286 1.3762 1.3597 1.3894 1.3163 1.0673 0.8020 0.8055 0.6693 - 24.1919 17.8802 14.7407 12.7534 11.3316 10.2436 9.3769 8.6649 8.0609 7.5285 7.0382 6.5670 6.0992 5.6271 5.1517 4.6815 4.2319 3.8218 3.4705 3.1932 2.9974 2.8791 2.8211 2.7943 2.7620 2.6872 2.5433 2.3238 2.0494 1.7662 1.5329 1.3975 1.3678 1.3929 1.3745 1.2254 0.9653 0.7752 0.8223 0.6540 - 20.6204 15.0660 12.2838 10.4924 9.1793 8.1455 7.2979 6.5856 5.9763 5.4476 4.9839 4.5744 4.2132 3.8980 3.6292 3.4082 3.2359 3.1102 3.0252 2.9701 2.9296 2.8851 2.8173 2.7099 2.5537 2.3500 2.1126 1.8677 1.6484 1.4869 1.4020 1.3875 1.4058 1.3951 1.2955 1.0945 0.8689 0.7680 0.8376 0.6369 - 12.4148 9.3731 7.8015 6.7712 6.0121 5.4202 4.9471 4.5660 4.2591 4.0124 3.8144 3.6553 3.5263 3.4202 3.3299 3.2491 3.1712 3.0891 2.9961 2.8856 2.7525 2.5943 2.4125 2.2134 2.0084 1.8128 1.6440 1.5172 1.4413 1.4141 1.4196 1.4279 1.4020 1.3107 1.1475 0.9499 0.8005 0.7823 0.8466 0.6187 - 11.3652 8.5300 7.1223 6.2303 5.5900 5.0991 4.7090 4.3926 4.1314 3.9113 3.7204 3.5487 3.3881 3.2321 3.0762 2.9175 2.7548 2.5882 2.4192 2.2504 2.0854 1.9292 1.7873 1.6658 1.5702 1.5039 1.4670 1.4548 1.4569 1.4578 1.4388 1.3825 1.2791 1.1332 0.9702 0.8349 0.7773 0.8121 0.8436 0.5999 - 9.5578 7.1231 5.9117 5.1368 4.5720 4.1300 3.7701 3.4700 3.2154 2.9954 2.8019 2.6283 2.4699 2.3236 2.1880 2.0626 1.9484 1.8465 1.7583 1.6847 1.6263 1.5828 1.5532 1.5350 1.5250 1.5182 1.5083 1.4883 1.4507 1.3891 1.3005 1.1871 1.0588 0.9336 0.8352 0.7872 0.7986 0.8422 0.8239 0.5814 - 5.7273 4.4436 3.7811 3.3463 3.0244 2.7712 2.5666 2.3995 2.2625 2.1497 2.0564 1.9785 1.9128 1.8569 1.8092 1.7684 1.7339 1.7047 1.6797 1.6575 1.6362 1.6133 1.5865 1.5530 1.5107 1.4576 1.3928 1.3161 1.2287 1.1337 1.0364 0.9445 0.8676 0.8157 0.7961 0.8088 0.8397 0.8531 0.7856 0.5638 - 5.6058 4.2777 3.6238 3.2114 2.9157 2.6885 2.5079 2.3617 2.2419 2.1426 2.0588 1.9862 1.9215 1.8618 1.8052 1.7502 1.6957 1.6411 1.5856 1.5286 1.4696 1.4078 1.3432 1.2759 1.2066 1.1365 1.0676 1.0020 0.9424 0.8914 0.8518 0.8261 0.8158 0.8207 0.8369 0.8555 0.8607 0.8289 0.7309 0.5482 - 4.6960 3.5684 3.0134 2.6614 2.4065 2.2078 2.0468 1.9135 1.8014 1.7056 1.6223 1.5483 1.4809 1.4184 1.3595 1.3035 1.2500 1.1990 1.1505 1.1048 1.0618 1.0217 0.9848 0.9513 0.9219 0.8972 0.8777 0.8640 0.8561 0.8538 0.8563 0.8623 0.8697 0.8755 0.8752 0.8624 0.8292 0.7666 0.6671 0.5354 - 2.6972 2.1684 1.8953 1.7156 1.5816 1.4752 1.3885 1.3171 1.2580 1.2090 1.1679 1.1331 1.1029 1.0763 1.0526 1.0314 1.0125 0.9959 0.9816 0.9694 0.9592 0.9508 0.9440 0.9384 0.9339 0.9302 0.9270 0.9240 0.9204 0.9156 0.9084 0.8977 0.8823 0.8608 0.8318 0.7932 0.7430 0.6801 0.6051 0.5260 - 2.9994 2.3254 1.9989 1.7954 1.6502 1.5389 1.4504 1.3788 1.3203 1.2723 1.2324 1.1987 1.1696 1.1439 1.1206 1.0991 1.0790 1.0602 1.0425 1.0256 1.0093 0.9934 0.9774 0.9612 0.9444 0.9269 0.9087 0.8894 0.8690 0.8472 0.8236 0.7980 0.7702 0.7402 0.7079 0.6731 0.6358 0.5963 0.5563 0.5205 - 2.5199 1.9540 1.6805 1.5099 1.3877 1.2935 1.2178 1.1558 1.1046 1.0618 1.0256 0.9944 0.9668 0.9419 0.9189 0.8974 0.8770 0.8576 0.8392 0.8215 0.8046 0.7882 0.7722 0.7563 0.7404 0.7247 0.7091 0.6936 0.6782 0.6629 0.6476 0.6322 0.6169 0.6016 0.5865 0.5717 0.5570 0.5426 0.5295 0.5192 - 1.3964 1.1714 1.0554 0.9791 0.9217 0.8757 0.8379 0.8066 0.7808 0.7594 0.7415 0.7263 0.7131 0.7013 0.6903 0.6801 0.6704 0.6613 0.6528 0.6448 0.6372 0.6301 0.6231 0.6163 0.6096 0.6030 0.5965 0.5902 0.5842 0.5783 0.5725 0.5667 0.5610 0.5553 0.5497 0.5442 0.5387 0.5331 0.5277 0.5219 - 1.8850 1.4772 1.2839 1.1655 1.0818 1.0180 0.9672 0.9261 0.8925 0.8650 0.8422 0.8229 0.8064 0.7918 0.7786 0.7664 0.7551 0.7445 0.7345 0.7252 0.7164 0.7079 0.6997 0.6916 0.6834 0.6753 0.6671 0.6590 0.6508 0.6426 0.6341 0.6254 0.6162 0.6066 0.5965 0.5858 0.5742 0.5614 0.5470 0.5283 - 1.5895 1.2566 1.0996 1.0040 0.9370 0.8863 0.8465 0.8147 0.7893 0.7691 0.7529 0.7400 0.7295 0.7208 0.7135 0.7072 0.7017 0.6971 0.6932 0.6900 0.6875 0.6854 0.6837 0.6822 0.6808 0.6795 0.6782 0.6768 0.6752 0.6734 0.6709 0.6675 0.6629 0.6567 0.6487 0.6380 0.6238 0.6045 0.5781 0.5375 - 0.8945 0.7788 0.7196 0.6809 0.6515 0.6278 0.6081 0.5918 0.5785 0.5677 0.5590 0.5519 0.5461 0.5412 0.5370 0.5335 0.5305 0.5281 0.5265 0.5257 0.5257 0.5267 0.5287 0.5316 0.5355 0.5407 0.5470 0.5548 0.5640 0.5744 0.5861 0.5984 0.6111 0.6234 0.6343 0.6420 0.6437 0.6350 0.6093 0.5490 - 1.4388 1.1367 0.9956 0.9101 0.8500 0.8040 0.7672 0.7370 0.7120 0.6911 0.6733 0.6577 0.6438 0.6309 0.6185 0.6064 0.5945 0.5825 0.5707 0.5589 0.5471 0.5355 0.5241 0.5130 0.5026 0.4932 0.4853 0.4796 0.4768 0.4775 0.4825 0.4924 0.5079 0.5291 0.5557 0.5857 0.6150 0.6350 0.6301 0.5616 - 1.1973 0.9693 0.8638 0.8010 0.7579 0.7260 0.7016 0.6828 0.6686 0.6582 0.6508 0.6457 0.6423 0.6401 0.6386 0.6374 0.6363 0.6349 0.6331 0.6306 0.6269 0.6218 0.6148 0.6056 0.5940 0.5798 0.5631 0.5444 0.5243 0.5039 0.4849 0.4695 0.4607 0.4619 0.4766 0.5069 0.5519 0.6029 0.6347 0.5745 - 0.7559 0.6740 0.6316 0.6031 0.5810 0.5627 0.5472 0.5343 0.5238 0.5156 0.5095 0.5053 0.5027 0.5016 0.5020 0.5038 0.5072 0.5123 0.5191 0.5276 0.5376 0.5489 0.5608 0.5727 0.5835 0.5923 0.5976 0.5980 0.5924 0.5796 0.5592 0.5324 0.5018 0.4729 0.4541 0.4556 0.4874 0.5511 0.6220 0.5870 - 1.4015 1.1139 0.9783 0.8949 0.8353 0.7889 0.7507 0.7186 0.6910 0.6669 0.6453 0.6255 0.6067 0.5887 0.5710 0.5535 0.5366 0.5205 0.5057 0.4930 0.4830 0.4765 0.4743 0.4771 0.4851 0.4983 0.5160 0.5367 0.5578 0.5755 0.5854 0.5830 0.5652 0.5324 0.4909 0.4556 0.4500 0.4982 0.5956 0.5983 - 1.3116 1.0668 0.9508 0.8804 0.8314 0.7948 0.7665 0.7447 0.7281 0.7155 0.7059 0.6985 0.6923 0.6862 0.6796 0.6714 0.6613 0.6485 0.6327 0.6138 0.5919 0.5675 0.5417 0.5160 0.4927 0.4745 0.4642 0.4644 0.4764 0.4992 0.5290 0.5584 0.5773 0.5749 0.5452 0.4944 0.4495 0.4595 0.5617 0.6080 - 1.3027 1.0796 0.9641 0.8874 0.8292 0.7821 0.7431 0.7108 0.6843 0.6631 0.6467 0.6346 0.6265 0.6220 0.6208 0.6226 0.6268 0.6327 0.6391 0.6446 0.6475 0.6456 0.6371 0.6206 0.5958 0.5640 0.5283 0.4940 0.4676 0.4561 0.4641 0.4915 0.5307 0.5652 0.5736 0.5405 0.4769 0.4421 0.5266 0.6160 - 2.4384 1.8700 1.5925 1.4173 1.2899 1.1895 1.1066 1.0359 0.9743 0.9194 0.8696 0.8234 0.7802 0.7398 0.7023 0.6688 0.6403 0.6181 0.6034 0.5969 0.5983 0.6063 0.6180 0.6293 0.6355 0.6316 0.6140 0.5821 0.5397 0.4954 0.4618 0.4519 0.4728 0.5178 0.5620 0.5681 0.5143 0.4448 0.4953 0.6221 - 2.8472 2.1803 1.8554 1.6532 1.5101 1.4015 1.3160 1.2473 1.1909 1.1434 1.1018 1.0632 1.0250 0.9851 0.9420 0.8950 0.8441 0.7908 0.7373 0.6869 0.6436 0.6112 0.5925 0.5884 0.5968 0.6120 0.6254 0.6272 0.6094 0.5703 0.5176 0.4692 0.4480 0.4694 0.5240 0.5685 0.5462 0.4611 0.4708 0.6265 - 3.3181 2.5253 2.1295 1.8763 1.6920 1.5487 1.4336 1.3404 1.2649 1.2043 1.1564 1.1189 1.0896 1.0660 1.0452 1.0240 0.9989 0.9667 0.9249 0.8727 0.8117 0.7461 0.6828 0.6298 0.5950 0.5824 0.5901 0.6089 0.6233 0.6171 0.5811 0.5220 0.4653 0.4459 0.4828 0.5483 0.5645 0.4834 0.4537 0.6295 - 4.3044 3.2176 2.6889 2.3582 2.1213 1.9372 1.7865 1.6587 1.5472 1.4480 1.3587 1.2785 1.2075 1.1469 1.0977 1.0606 1.0344 1.0157 0.9993 0.9782 0.9455 0.8966 0.8312 0.7549 0.6792 0.6180 0.5837 0.5801 0.5988 0.6190 0.6158 0.5745 0.5062 0.4507 0.4542 0.5197 0.5692 0.5054 0.4433 0.6312 - 3.8949 2.9753 2.5263 2.2500 2.0597 1.9210 1.8169 1.7364 1.6709 1.6128 1.5553 1.4933 1.4238 1.3471 1.2664 1.1876 1.1178 1.0629 1.0255 1.0032 0.9881 0.9686 0.9332 0.8747 0.7951 0.7070 0.6301 0.5840 0.5770 0.5984 0.6192 0.6065 0.5481 0.4730 0.4421 0.4927 0.5642 0.5237 0.4382 0.6321 - 4.4745 3.3730 2.7984 2.4161 2.1321 1.9138 1.7485 1.6298 1.5526 1.5096 1.4909 1.4840 1.4755 1.4535 1.4104 1.3451 1.2634 1.1770 1.0992 1.0409 1.0056 0.9872 0.9715 0.9409 0.8831 0.7981 0.7016 0.6198 0.5772 0.5800 0.6073 0.6180 0.5788 0.4994 0.4424 0.4724 0.5550 0.5368 0.4364 0.6325 - 6.7680 4.9472 4.0359 3.4351 2.9716 2.5821 2.2452 1.9585 1.7277 1.5590 1.4539 1.4057 1.3990 1.4120 1.4212 1.4076 1.3617 1.2864 1.1953 1.1079 1.0408 1.0013 0.9824 0.9658 0.9298 0.8610 0.7644 0.6641 0.5930 0.5724 0.5942 0.6180 0.5968 0.5213 0.4483 0.4597 0.5457 0.5453 0.4363 0.6325 - 6.0890 4.6092 3.9670 3.5963 3.3110 3.0322 2.7313 2.4116 2.0950 1.8118 1.5891 1.4430 1.3729 1.3620 1.3813 1.3989 1.3894 1.3413 1.2602 1.1648 1.0787 1.0193 0.9890 0.9737 0.9490 0.8937 0.8033 0.6969 0.6097 0.5722 0.5861 0.6150 0.6052 0.5350 0.4540 0.4531 0.5393 0.5498 0.4368 0.6324 - 4.3922 3.5485 3.2832 3.1950 3.1302 3.0143 2.8195 2.5527 2.2448 1.9387 1.6763 1.4874 1.3825 1.3506 1.3643 1.3882 1.3910 1.3549 1.2807 1.1856 1.0943 1.0277 0.9921 0.9756 0.9540 0.9034 0.8160 0.7086 0.6165 0.5730 0.5835 0.6135 0.6075 0.5395 0.4563 0.4511 0.5370 0.5512 0.4370 0.6324 - 99.9999 99.9999 99.9999 99.9999 94.5782 61.2119 38.9578 25.6097 18.7651 16.0875 15.5567 15.6482 15.4133 14.4591 12.8396 10.8853 9.0122 7.5554 6.6632 6.2744 6.1713 6.0842 5.8045 5.2630 4.5443 3.8316 3.3045 3.0410 2.9722 2.9238 2.7287 2.3489 1.9166 1.6352 1.5797 1.5729 1.3513 0.9958 0.9501 0.7168 - 99.9999 99.9999 99.9999 99.9999 71.1091 46.8482 31.0532 21.9348 17.5545 16.0525 15.8572 15.8269 15.3058 14.0933 12.3394 10.3908 8.6271 7.3221 6.5661 6.2604 6.1781 6.0654 5.7426 5.1693 4.4465 3.7567 3.2653 3.0312 2.9731 2.9169 2.7072 2.3204 1.8953 1.6282 1.5810 1.5704 1.3430 0.9917 0.9512 0.7157 - 99.9999 86.0347 63.8229 46.5912 34.0159 25.5990 20.6005 18.0987 17.1233 16.7976 16.4525 15.6903 14.3921 12.6725 10.7924 9.0531 7.6944 6.8257 6.4036 6.2616 6.1787 5.9624 5.5173 4.8736 4.1641 3.5569 3.1707 3.0132 2.9743 2.8883 2.6366 2.2353 1.8358 1.6112 1.5851 1.5613 1.3175 0.9802 0.9544 0.7125 - 34.0485 30.5834 27.1242 24.3114 22.2349 20.7872 19.7543 18.8819 17.9388 16.7662 15.3073 13.6115 11.8140 10.0953 8.6303 7.5393 6.8546 6.5126 6.3744 6.2695 6.0501 5.6377 5.0465 4.3733 3.7556 3.3104 3.0797 3.0070 2.9630 2.8141 2.5036 2.0979 1.7524 1.5943 1.5917 1.5409 1.2745 0.9637 0.9596 0.7074 - 31.1005 28.9108 26.7354 24.6786 22.6952 20.7432 18.7988 16.8594 14.9471 13.1075 11.4047 9.9102 8.6871 7.7725 7.1636 6.8119 6.6286 6.5019 6.3229 6.0136 5.5485 4.9617 4.3359 3.7744 3.3623 3.1316 3.0440 3.0037 2.8988 2.6590 2.3003 1.9266 1.6696 1.5888 1.5964 1.5019 1.2145 0.9460 0.9659 0.7004 - 26.0871 23.3355 20.8053 18.5011 16.3893 14.4676 12.7516 11.2611 10.0117 9.0097 8.2485 7.7060 7.3435 7.1074 6.9335 6.7552 6.5146 6.1734 5.7224 5.1845 4.6110 4.0691 3.6236 3.3163 3.1493 3.0807 3.0355 2.9326 2.7195 2.4017 2.0479 1.7609 1.6162 1.5987 1.5871 1.4360 1.1412 0.9321 0.9721 0.6919 - 15.1169 14.0839 12.9736 11.9281 10.9818 10.1536 9.4534 8.8805 8.4223 8.0563 7.7518 7.4743 7.1894 6.8678 6.4901 6.0503 5.5584 5.0390 4.5279 4.0652 3.6865 3.4137 3.2472 3.1629 3.1157 3.0502 2.9180 2.6956 2.3980 2.0784 1.8100 1.6515 1.6076 1.6101 1.5449 1.3389 1.0634 0.9268 0.9759 0.6824 - 13.6165 12.7482 11.8843 11.0843 10.3453 9.6633 9.0346 8.4533 7.9103 7.3947 6.8957 6.4051 5.9193 5.4409 4.9790 4.5475 4.1631 3.8412 3.5923 3.4180 3.3086 3.2432 3.1918 3.1209 3.0015 2.8171 2.5713 2.2898 2.0159 1.7974 1.6675 1.6249 1.6242 1.5888 1.4518 1.2169 0.9944 0.9334 0.9744 0.6722 - 11.3966 10.5024 9.6465 8.8563 8.1237 7.4462 6.8252 6.2619 5.7563 5.3067 4.9108 4.5661 4.2709 4.0235 3.8225 3.6652 3.5465 3.4583 3.3888 3.3230 3.2444 3.1377 2.9915 2.8024 2.5767 2.3318 2.0932 1.8898 1.7449 1.6678 1.6455 1.6419 1.6070 1.4976 1.3077 1.0910 0.9497 0.9507 0.9639 0.6620 - 7.1949 6.8499 6.4362 6.0251 5.6344 5.2745 4.9530 4.6736 4.4370 4.2403 4.0786 3.9449 3.8318 3.7312 3.6354 3.5369 3.4292 3.3067 3.1652 3.0028 2.8203 2.6221 2.4164 2.2150 2.0316 1.8800 1.7704 1.7057 1.6789 1.6716 1.6566 1.6046 1.4953 1.3303 1.1427 0.9929 0.9388 0.9719 0.9411 0.6524 - 6.5453 6.2138 5.8631 5.5294 5.2163 4.9260 4.6604 4.4199 4.2029 4.0058 3.8237 3.6513 3.4833 3.3156 3.1456 2.9726 2.7972 2.6222 2.4513 2.2891 2.1408 2.0113 1.9049 1.8241 1.7693 1.7372 1.7208 1.7090 1.6875 1.6418 1.5605 1.4404 1.2910 1.1363 1.0115 0.9497 0.9579 0.9846 0.9044 0.6440 - 5.4441 5.1159 4.7845 4.4712 4.1761 3.9002 3.6452 3.4124 3.2015 3.0113 2.8395 2.6835 2.5413 2.4114 2.2930 2.1865 2.0925 2.0119 1.9456 1.8934 1.8543 1.8261 1.8054 1.7875 1.7669 1.7378 1.6944 1.6319 1.5477 1.4426 1.3222 1.1974 1.0840 0.9999 0.9590 0.9621 0.9859 0.9750 0.8545 0.6376 - 3.4562 3.3696 3.2293 3.0766 2.9232 2.7760 2.6400 2.5184 2.4125 2.3221 2.2458 2.1816 2.1273 2.0807 2.0400 2.0036 1.9701 1.9383 1.9066 1.8733 1.8365 1.7939 1.7435 1.6836 1.6133 1.5328 1.4437 1.3491 1.2533 1.1623 1.0826 1.0212 0.9834 0.9712 0.9800 0.9954 0.9914 0.9336 0.7959 0.6336 - 3.3100 3.1898 3.0504 2.9126 2.7797 2.6542 2.5382 2.4332 2.3395 2.2561 2.1815 2.1135 2.0498 1.9883 1.9274 1.8659 1.8031 1.7386 1.6725 1.6047 1.5355 1.4651 1.3942 1.3239 1.2555 1.1910 1.1327 1.0828 1.0435 1.0161 1.0011 0.9973 1.0018 1.0092 1.0110 0.9956 0.9496 0.8622 0.7364 0.6325 - 2.7544 2.6342 2.5035 2.3760 2.2532 2.1365 2.0276 1.9276 1.8370 1.7554 1.6817 1.6144 1.5522 1.4940 1.4389 1.3865 1.3368 1.2900 1.2466 1.2067 1.1709 1.1392 1.1118 1.0889 1.0706 1.0569 1.0479 1.0430 1.0414 1.0416 1.0414 1.0382 1.0289 1.0099 0.9777 0.9287 0.8609 0.7759 0.6855 0.6345 - 1.7144 1.7199 1.6859 1.6376 1.5831 1.5272 1.4733 1.4236 1.3793 1.3409 1.3080 1.2798 1.2556 1.2343 1.2155 1.1987 1.1836 1.1703 1.1585 1.1483 1.1393 1.1313 1.1237 1.1161 1.1079 1.0987 1.0880 1.0751 1.0595 1.0403 1.0165 0.9874 0.9523 0.9111 0.8639 0.8113 0.7551 0.6990 0.6517 0.6396 - 1.8141 1.7731 1.7183 1.6613 1.6042 1.5489 1.4970 1.4496 1.4074 1.3704 1.3381 1.3097 1.2841 1.2605 1.2382 1.2165 1.1953 1.1743 1.1534 1.1326 1.1116 1.0904 1.0685 1.0458 1.0221 0.9973 0.9714 0.9445 0.9166 0.8876 0.8576 0.8266 0.7951 0.7635 0.7326 0.7032 0.6763 0.6539 0.6400 0.6473 - 1.5239 1.4824 1.4314 1.3793 1.3275 1.2772 1.2298 1.1861 1.1468 1.1118 1.0808 1.0530 1.0278 1.0045 0.9824 0.9612 0.9407 0.9209 0.9018 0.8833 0.8655 0.8483 0.8315 0.8150 0.7989 0.7831 0.7677 0.7528 0.7385 0.7249 0.7118 0.6995 0.6879 0.6773 0.6681 0.6603 0.6541 0.6501 0.6496 0.6573 - 0.9435 0.9766 0.9803 0.9714 0.9556 0.9364 0.9161 0.8965 0.8786 0.8629 0.8493 0.8376 0.8273 0.8180 0.8094 0.8012 0.7933 0.7857 0.7786 0.7718 0.7654 0.7593 0.7535 0.7478 0.7421 0.7365 0.7310 0.7257 0.7206 0.7156 0.7108 0.7060 0.7012 0.6965 0.6919 0.6874 0.6829 0.6783 0.6737 0.6687 - 1.1593 1.1442 1.1200 1.0935 1.0659 1.0383 1.0119 0.9876 0.9660 0.9472 0.9312 0.9174 0.9055 0.8948 0.8849 0.8757 0.8669 0.8585 0.8505 0.8430 0.8358 0.8290 0.8224 0.8159 0.8094 0.8029 0.7964 0.7900 0.7836 0.7773 0.7709 0.7644 0.7575 0.7503 0.7427 0.7346 0.7256 0.7150 0.7020 0.6808 - 0.9895 0.9771 0.9568 0.9344 0.9112 0.8880 0.8659 0.8458 0.8281 0.8130 0.8004 0.7900 0.7812 0.7737 0.7672 0.7613 0.7561 0.7514 0.7472 0.7438 0.7409 0.7386 0.7368 0.7354 0.7343 0.7336 0.7333 0.7334 0.7340 0.7350 0.7364 0.7379 0.7393 0.7406 0.7415 0.7415 0.7398 0.7347 0.7232 0.6925 - 0.6371 0.6760 0.6912 0.6953 0.6929 0.6866 0.6784 0.6698 0.6616 0.6542 0.6479 0.6425 0.6378 0.6335 0.6294 0.6254 0.6215 0.6177 0.6141 0.6108 0.6079 0.6054 0.6034 0.6019 0.6011 0.6010 0.6019 0.6040 0.6076 0.6129 0.6201 0.6294 0.6408 0.6546 0.6706 0.6884 0.7066 0.7223 0.7294 0.7031 - 0.8958 0.8900 0.8769 0.8614 0.8444 0.8268 0.8095 0.7933 0.7787 0.7658 0.7546 0.7449 0.7361 0.7280 0.7201 0.7122 0.7040 0.6957 0.6870 0.6780 0.6686 0.6588 0.6486 0.6377 0.6264 0.6148 0.6030 0.5916 0.5811 0.5720 0.5652 0.5616 0.5625 0.5695 0.5841 0.6077 0.6404 0.6800 0.7175 0.7120 - 0.7714 0.7745 0.7686 0.7594 0.7485 0.7368 0.7255 0.7153 0.7068 0.7003 0.6957 0.6928 0.6914 0.6910 0.6914 0.6922 0.6935 0.6949 0.6964 0.6978 0.6990 0.6996 0.6993 0.6975 0.6939 0.6881 0.6797 0.6683 0.6540 0.6366 0.6167 0.5952 0.5742 0.5568 0.5474 0.5516 0.5754 0.6232 0.6897 0.7186 - 0.5564 0.5992 0.6184 0.6262 0.6270 0.6235 0.6177 0.6110 0.6044 0.5984 0.5932 0.5890 0.5855 0.5828 0.5809 0.5796 0.5792 0.5799 0.5820 0.5856 0.5910 0.5982 0.6071 0.6176 0.6293 0.6415 0.6535 0.6640 0.6715 0.6741 0.6701 0.6577 0.6363 0.6072 0.5749 0.5482 0.5411 0.5719 0.6523 0.7229 - 0.8798 0.8779 0.8666 0.8517 0.8346 0.8163 0.7978 0.7800 0.7633 0.7480 0.7339 0.7206 0.7078 0.6949 0.6816 0.6677 0.6532 0.6381 0.6228 0.6077 0.5933 0.5802 0.5693 0.5614 0.5575 0.5585 0.5652 0.5779 0.5958 0.6173 0.6390 0.6562 0.6632 0.6545 0.6275 0.5860 0.5461 0.5407 0.6129 0.7246 - 0.8500 0.8564 0.8498 0.8385 0.8249 0.8104 0.7964 0.7839 0.7735 0.7654 0.7596 0.7556 0.7529 0.7510 0.7491 0.7466 0.7430 0.7378 0.7303 0.7202 0.7069 0.6900 0.6696 0.6461 0.6206 0.5948 0.5716 0.5541 0.5458 0.5494 0.5658 0.5930 0.6247 0.6501 0.6556 0.6303 0.5780 0.5345 0.5780 0.7241 - 0.8653 0.8914 0.8914 0.8800 0.8622 0.8408 0.8182 0.7960 0.7754 0.7569 0.7408 0.7273 0.7162 0.7075 0.7012 0.6975 0.6965 0.6980 0.7019 0.7075 0.7138 0.7191 0.7215 0.7186 0.7085 0.6898 0.6627 0.6289 0.5930 0.5612 0.5416 0.5412 0.5631 0.6017 0.6401 0.6519 0.6155 0.5485 0.5519 0.7218 - 1.4514 1.4086 1.3572 1.3050 1.2531 1.2025 1.1539 1.1080 1.0652 1.0250 0.9870 0.9504 0.9145 0.8789 0.8435 0.8087 0.7753 0.7447 0.7185 0.6982 0.6850 0.6797 0.6819 0.6899 0.7004 0.7090 0.7102 0.6994 0.6736 0.6344 0.5890 0.5503 0.5339 0.5508 0.5965 0.6422 0.6413 0.5733 0.5361 0.7180 - 1.6902 1.6297 1.5622 1.4971 1.4354 1.3782 1.3262 1.2801 1.2399 1.2051 1.1747 1.1472 1.1207 1.0935 1.0639 1.0303 0.9920 0.9487 0.9009 0.8504 0.7998 0.7528 0.7136 0.6861 0.6727 0.6736 0.6847 0.6985 0.7044 0.6924 0.6575 0.6053 0.5541 0.5303 0.5533 0.6115 0.6486 0.5996 0.5296 0.7133 - 1.9509 1.8813 1.7973 1.7126 1.6296 1.5502 1.4759 1.4083 1.3480 1.2954 1.2505 1.2129 1.1818 1.1565 1.1356 1.1175 1.0999 1.0799 1.0544 1.0203 0.9758 0.9208 0.8579 0.7930 0.7342 0.6903 0.6681 0.6682 0.6836 0.6989 0.6957 0.6619 0.6024 0.5449 0.5297 0.5760 0.6398 0.6211 0.5303 0.7081 - 2.4669 2.3336 2.2050 2.0879 1.9805 1.8815 1.7903 1.7063 1.6284 1.5554 1.4860 1.4193 1.3552 1.2944 1.2388 1.1904 1.1510 1.1213 1.0999 1.0830 1.0644 1.0371 0.9949 0.9353 0.8617 0.7839 0.7164 0.6735 0.6622 0.6764 0.6955 0.6921 0.6493 0.5793 0.5288 0.5477 0.6218 0.6354 0.5354 0.7030 - 2.3024 2.2053 2.1012 2.0044 1.9168 1.8398 1.7744 1.7209 1.6781 1.6430 1.6114 1.5786 1.5398 1.4913 1.4323 1.3644 1.2927 1.2240 1.1654 1.1218 1.0935 1.0750 1.0561 1.0246 0.9715 0.8957 0.8074 0.7262 0.6733 0.6602 0.6777 0.6959 0.6790 0.6157 0.5430 0.5309 0.6018 0.6427 0.5424 0.6982 - 2.5901 2.5002 2.3729 2.2336 2.0907 1.9513 1.8228 1.7123 1.6251 1.5643 1.5295 1.5161 1.5159 1.5179 1.5105 1.4846 1.4360 1.3673 1.2874 1.2094 1.1453 1.1020 1.0770 1.0586 1.0295 0.9756 0.8937 0.7970 0.7117 0.6641 0.6629 0.6866 0.6914 0.6438 0.5624 0.5242 0.5843 0.6452 0.5494 0.6942 - 3.7498 3.5074 3.2710 3.0476 2.8294 2.6105 2.3894 2.1702 1.9620 1.7774 1.6292 1.5265 1.4712 1.4561 1.4657 1.4798 1.4785 1.4487 1.3883 1.3063 1.2200 1.1474 1.0990 1.0724 1.0523 1.0172 0.9513 0.8565 0.7552 0.6811 0.6575 0.6762 0.6936 0.6613 0.5795 0.5235 0.5716 0.6450 0.5552 0.6912 - 3.5611 3.2743 3.0799 2.9612 2.8809 2.8014 2.6927 2.5389 2.3408 2.1150 1.8883 1.6900 1.5438 1.4600 1.4332 1.4434 1.4628 1.4648 1.4327 1.3657 1.2774 1.1899 1.1227 1.0830 1.0611 1.0346 0.9809 0.8927 0.7865 0.6976 0.6581 0.6696 0.6922 0.6701 0.5906 0.5247 0.5641 0.6440 0.5589 0.6893 - 2.8277 2.5927 2.4884 2.4919 2.5523 2.6144 2.6315 2.5746 2.4376 2.2368 2.0045 1.7802 1.5989 1.4818 1.4314 1.4310 1.4519 1.4632 1.4424 1.3835 1.2974 1.2065 1.1330 1.0877 1.0637 1.0392 0.9897 0.9044 0.7976 0.7042 0.6591 0.6675 0.6914 0.6728 0.5944 0.5254 0.5616 0.6436 0.5602 0.6887 - 99.9999 99.9999 99.9999 70.8732 47.5312 32.0420 22.9366 18.4183 16.6973 16.2532 15.9956 15.3152 14.0400 12.3206 10.4773 8.8449 7.6507 6.9524 6.6423 6.5099 6.3335 5.9665 5.3869 4.6917 4.0401 3.5699 3.3256 3.2343 3.1485 2.9364 2.5713 2.1583 1.8608 1.7575 1.7413 1.5974 1.2742 1.0507 1.0710 0.7302 - 99.9999 99.9999 77.2426 54.0512 37.4021 26.6393 20.5618 17.7268 16.7283 16.4088 15.9809 15.0577 13.6023 11.8212 10.0296 8.5203 7.4665 6.8800 6.6287 6.5017 6.2959 5.8911 5.2884 4.5957 3.9690 3.5323 3.3139 3.2314 3.1385 2.9135 2.5420 2.1350 1.8508 1.7569 1.7396 1.5893 1.2661 1.0499 1.0707 0.7298 - 56.8339 45.7748 35.7728 28.0858 22.8795 19.8124 18.2747 17.5784 17.1113 16.4392 15.3524 13.8551 12.1127 10.3709 8.8680 7.7616 7.0873 6.7591 6.6086 6.4485 6.1388 5.6328 4.9856 4.3231 3.7815 3.4416 3.2892 3.2211 3.1007 2.8388 2.4542 2.0693 1.8249 1.7563 1.7330 1.5641 1.2428 1.0482 1.0695 0.7287 - 21.2534 21.5653 21.1208 20.5437 19.9683 19.3481 18.5756 17.5546 16.2456 14.6846 12.9782 11.2790 9.7481 8.5152 7.6454 7.1227 6.8560 6.7067 6.5309 6.2221 5.7433 5.1348 4.4953 3.9407 3.5548 3.3519 3.2679 3.1894 3.0118 2.6989 2.3115 1.9756 1.7951 1.7574 1.7171 1.5193 1.2065 1.0471 1.0667 0.7270 - 21.5576 21.8844 21.3717 20.3859 19.0724 17.5290 15.8468 14.1199 12.4456 10.9171 9.6130 8.5856 7.8502 7.3796 7.1072 6.9384 6.7714 6.5202 6.1370 5.6236 5.0306 4.4404 3.9398 3.5877 3.3923 3.3044 3.2354 3.0958 2.8382 2.4873 2.1326 1.8796 1.7755 1.7582 1.6833 1.4529 1.1619 1.0486 1.0609 0.7249 - 17.1590 16.6947 15.7025 14.4870 13.1926 11.9215 10.7523 9.7412 8.9202 8.2969 7.8545 7.5551 7.3446 7.1615 6.9462 6.6532 6.2601 5.7732 5.2273 4.6771 4.1839 3.7979 3.5419 3.4025 3.3310 3.2584 3.1201 2.8831 2.5642 2.2282 1.9588 1.8121 1.7728 1.7472 1.6206 1.3658 1.1164 1.0546 1.0504 0.7227 - 10.3054 10.5471 10.3750 10.0293 9.6155 9.1944 8.8006 8.4486 8.1360 7.8483 7.5632 7.2567 6.9083 6.5066 6.0528 5.5620 5.0617 4.5871 4.1734 3.8479 3.6216 3.4848 3.4072 3.3438 3.2470 3.0812 2.8370 2.5378 2.2351 1.9894 1.8425 1.7902 1.7733 1.7030 1.5208 1.2658 1.0794 1.0648 1.0332 0.7209 - 9.5189 9.7701 9.6822 9.4254 9.0692 8.6537 8.2050 7.7395 7.2670 6.7929 6.3212 5.8565 5.4063 4.9811 4.5939 4.2580 3.9843 3.7775 3.6338 3.5395 3.4718 3.4023 3.3027 3.1518 2.9426 2.6861 2.4113 2.1579 1.9641 1.8505 1.8073 1.7911 1.7396 1.6036 1.3875 1.1693 1.0598 1.0765 1.0074 0.7197 - 7.8145 7.8691 7.6616 7.3274 6.9255 6.4935 6.0589 5.6420 5.2565 4.9109 4.6099 4.3550 4.1454 3.9782 3.8482 3.7478 3.6667 3.5925 3.5112 3.4093 3.2759 3.1053 2.8992 2.6682 2.4312 2.2118 2.0333 1.9116 1.8475 1.8233 1.8048 1.7508 1.6312 1.4474 1.2444 1.0978 1.0613 1.0831 0.9719 0.7196 - 5.0664 5.2858 5.2874 5.1836 5.0247 4.8419 4.6564 4.4819 4.3257 4.1899 4.0725 3.9687 3.8718 3.7744 3.6694 3.5508 3.4142 3.2578 3.0823 2.8915 2.6923 2.4943 2.3088 2.1476 2.0204 1.9322 1.8810 1.8560 1.8384 1.8044 1.7320 1.6097 1.4453 1.2699 1.1307 1.0681 1.0779 1.0759 0.9273 0.7210 - 4.6572 4.8461 4.8627 4.7918 4.6694 4.5176 4.3511 4.1801 4.0099 3.8426 3.6780 3.5144 3.3499 3.1834 3.0148 2.8457 2.6792 2.5195 2.3717 2.2406 2.1302 2.0433 1.9800 1.9378 1.9110 1.8910 1.8667 1.8261 1.7592 1.6601 1.5312 1.3849 1.2436 1.1346 1.0794 1.0778 1.0920 1.0463 0.8763 0.7240 - 3.8340 3.9388 3.9081 3.8087 3.6692 3.5082 3.3388 3.1704 3.0090 2.8582 2.7195 2.5932 2.4792 2.3771 2.2869 2.2087 2.1428 2.0891 2.0467 2.0141 1.9884 1.9656 1.9408 1.9087 1.8642 1.8032 1.7234 1.6254 1.5132 1.3945 1.2805 1.1842 1.1177 1.0875 1.0886 1.0992 1.0808 0.9909 0.8243 0.7288 - 2.5101 2.6761 2.7262 2.7159 2.6706 2.6062 2.5339 2.4616 2.3942 2.3343 2.2825 2.2380 2.1995 2.1650 2.1327 2.1007 2.0674 2.0311 1.9905 1.9441 1.8906 1.8287 1.7580 1.6785 1.5916 1.5000 1.4075 1.3192 1.2406 1.1770 1.1324 1.1086 1.1031 1.1083 1.1104 1.0903 1.0282 0.9154 0.7780 0.7354 - 2.4043 2.5374 2.5794 2.5730 2.5370 2.4832 2.4201 2.3535 2.2872 2.2229 2.1610 2.1009 2.0415 1.9815 1.9198 1.8560 1.7899 1.7219 1.6524 1.5825 1.5131 1.4454 1.3806 1.3203 1.2661 1.2196 1.1824 1.1555 1.1389 1.1316 1.1308 1.1320 1.1291 1.1149 1.0817 1.0233 0.9379 0.8349 0.7444 0.7434 - 1.9900 2.0783 2.0944 2.0723 2.0268 1.9673 1.9010 1.8329 1.7663 1.7030 1.6438 1.5886 1.5370 1.4886 1.4430 1.4002 1.3603 1.3239 1.2912 1.2628 1.2388 1.2192 1.2038 1.1924 1.1842 1.1785 1.1744 1.1705 1.1652 1.1563 1.1414 1.1179 1.0837 1.0374 0.9790 0.9104 0.8371 0.7698 0.7285 0.7526 - 1.2907 1.4109 1.4667 1.4871 1.4856 1.4706 1.4484 1.4235 1.3989 1.3762 1.3563 1.3392 1.3245 1.3117 1.3002 1.2897 1.2799 1.2706 1.2617 1.2530 1.2440 1.2344 1.2235 1.2108 1.1956 1.1775 1.1561 1.1309 1.1017 1.0682 1.0303 0.9882 0.9426 0.8948 0.8469 0.8017 0.7632 0.7369 0.7313 0.7622 - 1.3459 1.4391 1.4812 1.4952 1.4912 1.4757 1.4538 1.4289 1.4035 1.3790 1.3558 1.3340 1.3131 1.2926 1.2720 1.2509 1.2291 1.2067 1.1836 1.1598 1.1353 1.1100 1.0839 1.0569 1.0291 1.0005 0.9713 0.9420 0.9128 0.8840 0.8559 0.8290 0.8041 0.7818 0.7633 0.7494 0.7412 0.7402 0.7486 0.7715 - 1.1307 1.1986 1.2253 1.2295 1.2193 1.2000 1.1757 1.1494 1.1231 1.0979 1.0744 1.0525 1.0321 1.0126 0.9939 0.9757 0.9579 0.9406 0.9239 0.9078 0.8925 0.8778 0.8639 0.8506 0.8380 0.8261 0.8150 0.8049 0.7958 0.7878 0.7807 0.7748 0.7700 0.7666 0.7647 0.7643 0.7653 0.7678 0.7724 0.7799 - 0.7389 0.8289 0.8794 0.9074 0.9206 0.9241 0.9217 0.9162 0.9096 0.9030 0.8970 0.8918 0.8873 0.8832 0.8793 0.8755 0.8716 0.8678 0.8641 0.8605 0.8572 0.8539 0.8508 0.8476 0.8443 0.8410 0.8376 0.8342 0.8308 0.8275 0.8240 0.8204 0.8167 0.8129 0.8091 0.8053 0.8012 0.7968 0.7923 0.7866 - 0.8744 0.9433 0.9799 0.9982 1.0045 1.0027 0.9961 0.9871 0.9773 0.9679 0.9592 0.9514 0.9444 0.9378 0.9314 0.9251 0.9188 0.9125 0.9062 0.9001 0.8942 0.8885 0.8828 0.8771 0.8714 0.8657 0.8600 0.8544 0.8489 0.8436 0.8385 0.8334 0.8283 0.8234 0.8186 0.8140 0.8093 0.8045 0.7994 0.7909 - 0.7528 0.8077 0.8355 0.8482 0.8509 0.8472 0.8398 0.8306 0.8211 0.8122 0.8042 0.7973 0.7912 0.7858 0.7808 0.7761 0.7715 0.7672 0.7632 0.7595 0.7563 0.7534 0.7508 0.7486 0.7466 0.7450 0.7437 0.7430 0.7429 0.7435 0.7448 0.7469 0.7498 0.7536 0.7586 0.7647 0.7720 0.7802 0.7890 0.7925 - 0.5151 0.5891 0.6344 0.6629 0.6800 0.6892 0.6933 0.6944 0.6939 0.6929 0.6917 0.6906 0.6894 0.6882 0.6867 0.6848 0.6825 0.6798 0.6769 0.6739 0.6707 0.6674 0.6641 0.6606 0.6572 0.6538 0.6507 0.6480 0.6461 0.6452 0.6456 0.6476 0.6518 0.6587 0.6691 0.6840 0.7040 0.7298 0.7616 0.7912 - 0.6832 0.7412 0.7743 0.7931 0.8023 0.8048 0.8033 0.7994 0.7948 0.7901 0.7859 0.7821 0.7788 0.7757 0.7725 0.7691 0.7653 0.7612 0.7567 0.7518 0.7465 0.7406 0.7341 0.7268 0.7186 0.7094 0.6992 0.6881 0.6762 0.6639 0.6515 0.6395 0.6289 0.6212 0.6185 0.6235 0.6397 0.6714 0.7229 0.7871 - 0.6014 0.6533 0.6828 0.6997 0.7082 0.7111 0.7107 0.7087 0.7064 0.7044 0.7033 0.7031 0.7038 0.7051 0.7070 0.7092 0.7117 0.7145 0.7176 0.7211 0.7248 0.7287 0.7325 0.7360 0.7387 0.7404 0.7404 0.7385 0.7339 0.7261 0.7146 0.6990 0.6794 0.6570 0.6342 0.6156 0.6087 0.6252 0.6807 0.7803 - 0.4570 0.5285 0.5735 0.6026 0.6206 0.6309 0.6361 0.6380 0.6381 0.6373 0.6361 0.6349 0.6336 0.6323 0.6307 0.6291 0.6275 0.6262 0.6253 0.6253 0.6264 0.6289 0.6331 0.6390 0.6469 0.6567 0.6683 0.6813 0.6949 0.7077 0.7178 0.7227 0.7200 0.7072 0.6835 0.6510 0.6182 0.6040 0.6432 0.7715 - 0.6722 0.7321 0.7662 0.7853 0.7943 0.7964 0.7941 0.7893 0.7834 0.7772 0.7711 0.7650 0.7589 0.7523 0.7450 0.7367 0.7272 0.7166 0.7048 0.6921 0.6785 0.6645 0.6505 0.6371 0.6252 0.6159 0.6106 0.6106 0.6170 0.6301 0.6493 0.6723 0.6950 0.7110 0.7125 0.6930 0.6524 0.6090 0.6160 0.7610 - 0.6615 0.7210 0.7540 0.7722 0.7808 0.7831 0.7817 0.7787 0.7755 0.7729 0.7713 0.7709 0.7714 0.7726 0.7740 0.7755 0.7766 0.7770 0.7763 0.7740 0.7696 0.7622 0.7513 0.7363 0.7172 0.6943 0.6691 0.6437 0.6213 0.6056 0.6007 0.6094 0.6320 0.6644 0.6958 0.7091 0.6873 0.6317 0.6015 0.7496 - 0.6697 0.7510 0.7966 0.8213 0.8320 0.8331 0.8281 0.8195 0.8091 0.7982 0.7874 0.7771 0.7676 0.7587 0.7509 0.7442 0.7393 0.7364 0.7360 0.7382 0.7428 0.7491 0.7560 0.7616 0.7637 0.7601 0.7487 0.7283 0.6992 0.6644 0.6296 0.6032 0.5947 0.6106 0.6487 0.6911 0.7045 0.6601 0.5988 0.7379 - 1.0620 1.1319 1.1619 1.1702 1.1644 1.1497 1.1295 1.1066 1.0827 1.0586 1.0346 1.0104 0.9855 0.9594 0.9317 0.9024 0.8720 0.8411 0.8111 0.7834 0.7596 0.7415 0.7304 0.7269 0.7305 0.7392 0.7492 0.7553 0.7517 0.7334 0.6994 0.6547 0.6123 0.5905 0.6047 0.6527 0.6992 0.6839 0.6052 0.7263 - 1.2372 1.3039 1.3271 1.3280 1.3154 1.2951 1.2710 1.2462 1.2225 1.2010 1.1818 1.1646 1.1484 1.1322 1.1145 1.0942 1.0700 1.0408 1.0061 0.9659 0.9209 0.8731 0.8255 0.7823 0.7481 0.7268 0.7204 0.7271 0.7407 0.7504 0.7444 0.7147 0.6642 0.6114 0.5870 0.6146 0.6774 0.6977 0.6169 0.7154 - 1.4056 1.4899 1.5187 1.5179 1.4984 1.4676 1.4304 1.3908 1.3514 1.3138 1.2790 1.2475 1.2195 1.1950 1.1741 1.1564 1.1412 1.1272 1.1123 1.0935 1.0678 1.0321 0.9852 0.9281 0.8651 0.8037 0.7536 0.7233 0.7164 0.7282 0.7442 0.7444 0.7133 0.6541 0.5977 0.5906 0.6493 0.7009 0.6307 0.7056 - 1.7616 1.8288 1.8392 1.8219 1.7887 1.7466 1.7006 1.6535 1.6069 1.5611 1.5156 1.4695 1.4220 1.3730 1.3232 1.2743 1.2289 1.1896 1.1584 1.1354 1.1186 1.1029 1.0814 1.0472 0.9958 0.9281 0.8518 0.7811 0.7316 0.7134 0.7234 0.7417 0.7389 0.6952 0.6251 0.5840 0.6237 0.6963 0.6439 0.6970 - 1.6819 1.7533 1.7684 1.7566 1.7303 1.6971 1.6629 1.6318 1.6062 1.5867 1.5722 1.5598 1.5457 1.5254 1.4952 1.4529 1.3991 1.3372 1.2733 1.2148 1.1679 1.1353 1.1143 1.0966 1.0704 1.0248 0.9559 0.8708 0.7879 0.7299 0.7113 0.7258 0.7422 0.7223 0.6556 0.5901 0.6048 0.6874 0.6551 0.6898 - 1.8128 1.9398 1.9818 1.9737 1.9316 1.8671 1.7902 1.7101 1.6348 1.5711 1.5240 1.4961 1.4863 1.4899 1.4987 1.5026 1.4920 1.4603 1.4070 1.3378 1.2639 1.1978 1.1490 1.1189 1.0989 1.0732 1.0258 0.9502 0.8561 0.7690 0.7174 0.7130 0.7346 0.7350 0.6805 0.6021 0.5932 0.6778 0.6636 0.6842 - 2.5680 2.6722 2.6778 2.6324 2.5555 2.4564 2.3390 2.2057 2.0601 1.9091 1.7634 1.6355 1.5376 1.4768 1.4530 1.4571 1.4732 1.4825 1.4691 1.4259 1.3569 1.2761 1.2013 1.1466 1.1143 1.0928 1.0612 1.0015 0.9113 0.8106 0.7342 0.7084 0.7256 0.7385 0.6971 0.6141 0.5872 0.6696 0.6695 0.6802 - 2.6718 2.6413 2.5627 2.4959 2.4579 2.4433 2.4330 2.4039 2.3369 2.2236 2.0698 1.8937 1.7214 1.5789 1.4844 1.4423 1.4420 1.4612 1.4736 1.4587 1.4087 1.3314 1.2462 1.1743 1.1276 1.1015 1.0761 1.0275 0.9442 0.8399 0.7498 0.7089 0.7197 0.7384 0.7060 0.6223 0.5848 0.6643 0.6729 0.6778 - 2.3639 2.2518 2.1327 2.0708 2.0805 2.1466 2.2356 2.3079 2.3298 2.2821 2.1651 1.9977 1.8116 1.6419 1.5169 1.4495 1.4346 1.4507 1.4692 1.4643 1.4232 1.3499 1.2630 1.1857 1.1333 1.1044 1.0801 1.0351 0.9549 0.8501 0.7559 0.7096 0.7178 0.7380 0.7088 0.6253 0.5841 0.6624 0.6740 0.6770 - 92.8339 69.2391 49.2442 34.5313 24.9825 19.6451 17.2105 16.3675 16.0473 15.5508 14.5680 13.1132 11.4098 9.7565 8.4078 7.4939 6.9952 6.7696 6.6198 6.3715 5.9357 5.3329 4.6718 4.0917 3.6935 3.4901 3.4005 3.2947 3.0691 2.7124 2.3181 2.0223 1.8954 1.8652 1.7612 1.4941 1.2135 1.1487 1.0933 0.7931 - 68.4272 51.8964 37.9555 27.9075 21.6157 18.2921 16.8945 16.4135 16.0647 15.3793 14.2058 12.6441 10.9403 9.3720 8.1501 7.3590 6.9455 6.7550 6.5969 6.3170 5.8497 5.2329 4.5812 4.0277 3.6603 3.4785 3.3945 3.2809 3.0437 2.6820 2.2937 2.0106 1.8937 1.8639 1.7539 1.4841 1.2090 1.1493 1.0911 0.7933 - 28.7845 24.7441 21.2575 18.9548 17.7363 17.2105 16.9166 16.4706 15.6474 14.4031 12.8480 11.1879 9.6503 8.4160 7.5713 7.0914 6.8592 6.7107 6.4927 6.1134 5.5683 4.9335 4.3284 3.8615 3.5809 3.4519 3.3739 3.2321 2.9621 2.5908 2.2247 1.9801 1.8900 1.8590 1.7306 1.4543 1.1966 1.1513 1.0843 0.7940 - 14.9709 16.5663 17.3878 17.7442 17.6869 17.2056 16.3063 15.0464 13.5401 11.9428 10.4218 9.1223 8.1369 7.4868 7.1197 6.9273 6.7773 6.5520 6.1821 5.6652 5.0618 4.4700 3.9863 3.6666 3.5018 3.4209 3.3228 3.1259 2.8126 2.4436 2.1259 1.9433 1.8872 1.8457 1.6874 1.4063 1.1795 1.1546 1.0723 0.7952 - 16.2777 17.1304 17.1021 16.4916 15.4690 14.1804 12.7674 11.3636 10.0845 9.0155 8.2027 7.6477 7.3088 7.1106 6.9601 6.7685 6.4718 6.0473 5.5181 4.9451 4.4073 3.9755 3.6870 3.5308 3.4502 3.3641 3.2009 2.9327 2.5924 2.2609 2.0239 1.9157 1.8843 1.8148 1.6197 1.3440 1.1625 1.1588 1.0546 0.7970 - 12.1451 12.3072 11.9320 11.2859 10.5198 9.7436 9.0364 8.4478 7.9968 7.6745 7.4487 7.2714 7.0890 6.8536 6.5328 6.1185 5.6289 5.1052 4.6018 4.1715 3.8507 3.6469 3.5354 3.4646 3.3726 3.2095 2.9582 2.6450 2.3311 2.0862 1.9506 1.9046 1.8696 1.7531 1.5259 1.2756 1.1511 1.1621 1.0303 0.7996 - 7.6227 8.2283 8.4540 8.4775 8.3855 8.2299 8.0403 7.8297 7.5980 7.3370 7.0356 6.6854 6.2848 5.8426 5.3787 4.9214 4.5029 4.1518 3.8863 3.7081 3.6003 3.5293 3.4532 3.3329 3.1446 2.8900 2.5983 2.3182 2.0999 1.9717 1.9216 1.8952 1.8197 1.6495 1.4125 1.2133 1.1496 1.1610 0.9994 0.8030 - 7.2590 7.8042 8.0050 7.9934 7.8336 7.5686 7.2311 6.8464 6.4345 6.0116 5.5920 5.1890 4.8161 4.4857 4.2081 3.9893 3.8286 3.7174 3.6391 3.5708 3.4872 3.3661 3.1945 2.9731 2.7184 2.4600 2.2332 2.0672 1.9727 1.9339 1.9094 1.8470 1.7103 1.5066 1.2980 1.1710 1.1577 1.1505 0.9623 0.8073 - 5.8102 6.1192 6.1604 6.0455 5.8327 5.5639 5.2715 4.9807 4.7094 4.4693 4.2666 4.1026 3.9743 3.8755 3.7969 3.7271 3.6532 3.5630 3.4461 3.2963 3.1129 2.9025 2.6784 2.4596 2.2666 2.1170 2.0192 1.9681 1.9434 1.9136 1.8455 1.7190 1.5411 1.3515 1.2096 1.1575 1.1685 1.1247 0.9212 0.8124 - 3.8565 4.2270 4.3968 4.4505 4.4315 4.3693 4.2851 4.1935 4.1028 4.0160 3.9323 3.8477 3.7567 3.6535 3.5333 3.3934 3.2337 3.0572 2.8700 2.6806 2.4995 2.3371 2.2026 2.1018 2.0349 1.9959 1.9718 1.9445 1.8944 1.8065 1.6767 1.5167 1.3553 1.2300 1.1692 1.1677 1.1682 1.0799 0.8793 0.8183 - 3.6046 3.9331 4.0917 4.1458 4.1279 4.0603 3.9596 3.8377 3.7031 3.5607 3.4132 3.2620 3.1081 2.9531 2.7991 2.6498 2.5094 2.3825 2.2734 2.1850 2.1183 2.0716 2.0403 2.0173 1.9931 1.9575 1.9013 1.8185 1.7083 1.5773 1.4395 1.3147 1.2234 1.1783 1.1739 1.1791 1.1413 1.0169 0.8416 0.8247 - 2.9283 3.1489 3.2340 3.2370 3.1854 3.0984 2.9912 2.8752 2.7587 2.6474 2.5447 2.4522 2.3709 2.3009 2.2419 2.1933 2.1543 2.1231 2.0976 2.0743 2.0494 2.0183 1.9765 1.9202 1.8470 1.7571 1.6534 1.5420 1.4316 1.3325 1.2550 1.2059 1.1862 1.1867 1.1876 1.1604 1.0792 0.9432 0.8131 0.8313 - 1.9620 2.1934 2.3197 2.3822 2.4022 2.3947 2.3710 2.3397 2.3063 2.2743 2.2452 2.2186 2.1935 2.1681 2.1406 2.1091 2.0720 2.0280 1.9763 1.9163 1.8480 1.7721 1.6898 1.6035 1.5165 1.4328 1.3572 1.2942 1.2472 1.2179 1.2048 1.2029 1.2033 1.1934 1.1596 1.0915 0.9889 0.8731 0.7979 0.8376 - 1.8942 2.0960 2.2092 2.2668 2.2855 2.2769 2.2500 2.2118 2.1668 2.1182 2.0673 2.0145 1.9596 1.9023 1.8422 1.7796 1.7150 1.6494 1.5840 1.5205 1.4603 1.4050 1.3559 1.3143 1.2811 1.2567 1.2407 1.2322 1.2287 1.2266 1.2213 1.2073 1.1791 1.1324 1.0659 0.9831 0.8949 0.8226 0.7977 0.8430 - 1.5570 1.7011 1.7740 1.8027 1.8009 1.7783 1.7427 1.6999 1.6544 1.6089 1.5651 1.5239 1.4854 1.4497 1.4168 1.3868 1.3601 1.3368 1.3173 1.3017 1.2899 1.2813 1.2754 1.2709 1.2667 1.2613 1.2531 1.2406 1.2221 1.1959 1.1608 1.1161 1.0623 1.0015 0.9378 0.8772 0.8285 0.8026 0.8104 0.8469 - 1.0390 1.1879 1.2798 1.3357 1.3666 1.3802 1.3828 1.3790 1.3724 1.3651 1.3583 1.3524 1.3474 1.3428 1.3382 1.3332 1.3274 1.3205 1.3124 1.3026 1.2910 1.2769 1.2599 1.2396 1.2154 1.1874 1.1554 1.1199 1.0811 1.0399 0.9971 0.9540 0.9123 0.8744 0.8427 0.8202 0.8094 0.8126 0.8300 0.8487 - 1.0802 1.2105 1.2912 1.3404 1.3668 1.3770 1.3761 1.3682 1.3561 1.3419 1.3265 1.3104 1.2935 1.2756 1.2565 1.2359 1.2140 1.1907 1.1662 1.1408 1.1147 1.0880 1.0608 1.0333 1.0058 0.9786 0.9521 0.9269 0.9035 0.8824 0.8638 0.8484 0.8364 0.8284 0.8249 0.8257 0.8307 0.8388 0.8481 0.8481 - 0.9069 1.0042 1.0612 1.0927 1.1061 1.1068 1.0992 1.0866 1.0715 1.0556 1.0398 1.0246 1.0100 0.9960 0.9823 0.9689 0.9559 0.9434 0.9316 0.9205 0.9103 0.9011 0.8927 0.8853 0.8787 0.8731 0.8684 0.8647 0.8620 0.8602 0.8591 0.8587 0.8587 0.8592 0.8600 0.8607 0.8608 0.8595 0.8560 0.8445 - 0.6134 0.7172 0.7868 0.8342 0.8655 0.8853 0.8972 0.9041 0.9081 0.9108 0.9129 0.9149 0.9169 0.9187 0.9202 0.9213 0.9220 0.9224 0.9224 0.9223 0.9219 0.9213 0.9204 0.9192 0.9175 0.9154 0.9129 0.9100 0.9067 0.9030 0.8988 0.8941 0.8889 0.8832 0.8771 0.8707 0.8637 0.8560 0.8479 0.8380 - 0.7123 0.8050 0.8663 0.9072 0.9332 0.9482 0.9557 0.9583 0.9580 0.9562 0.9538 0.9510 0.9481 0.9448 0.9412 0.9370 0.9324 0.9273 0.9219 0.9164 0.9107 0.9049 0.8991 0.8930 0.8869 0.8806 0.8742 0.8679 0.8618 0.8558 0.8499 0.8443 0.8388 0.8339 0.8295 0.8259 0.8231 0.8216 0.8226 0.8285 - 0.6179 0.6910 0.7376 0.7674 0.7850 0.7939 0.7970 0.7964 0.7939 0.7907 0.7873 0.7841 0.7812 0.7784 0.7755 0.7726 0.7695 0.7663 0.7631 0.7600 0.7571 0.7542 0.7515 0.7488 0.7461 0.7436 0.7412 0.7390 0.7373 0.7360 0.7352 0.7351 0.7358 0.7375 0.7408 0.7461 0.7540 0.7658 0.7841 0.8165 - 0.4379 0.5201 0.5779 0.6195 0.6490 0.6695 0.6837 0.6935 0.7006 0.7062 0.7108 0.7148 0.7183 0.7213 0.7236 0.7252 0.7260 0.7261 0.7257 0.7248 0.7234 0.7216 0.7193 0.7165 0.7131 0.7093 0.7050 0.7005 0.6958 0.6911 0.6866 0.6825 0.6792 0.6772 0.6775 0.6813 0.6904 0.7081 0.7402 0.8024 - 0.5616 0.6380 0.6903 0.7265 0.7510 0.7668 0.7765 0.7822 0.7855 0.7877 0.7893 0.7907 0.7919 0.7930 0.7938 0.7942 0.7941 0.7937 0.7929 0.7917 0.7903 0.7885 0.7863 0.7833 0.7796 0.7750 0.7693 0.7624 0.7543 0.7449 0.7340 0.7216 0.7079 0.6934 0.6793 0.6676 0.6617 0.6683 0.6997 0.7869 - 0.5038 0.5686 0.6120 0.6416 0.6613 0.6738 0.6813 0.6858 0.6887 0.6910 0.6932 0.6957 0.6985 0.7014 0.7045 0.7077 0.7109 0.7143 0.7179 0.7219 0.7263 0.7311 0.7364 0.7420 0.7477 0.7534 0.7588 0.7637 0.7676 0.7698 0.7695 0.7657 0.7573 0.7434 0.7237 0.6993 0.6738 0.6566 0.6698 0.7706 - 0.3921 0.4701 0.5258 0.5664 0.5956 0.6162 0.6304 0.6403 0.6473 0.6524 0.6564 0.6596 0.6620 0.6636 0.6645 0.6646 0.6640 0.6628 0.6613 0.6598 0.6585 0.6577 0.6576 0.6587 0.6612 0.6655 0.6721 0.6811 0.6927 0.7067 0.7222 0.7376 0.7505 0.7577 0.7552 0.7393 0.7088 0.6706 0.6543 0.7543 - 0.5518 0.6295 0.6825 0.7192 0.7438 0.7595 0.7690 0.7743 0.7772 0.7787 0.7796 0.7799 0.7799 0.7791 0.7776 0.7750 0.7712 0.7661 0.7596 0.7517 0.7425 0.7318 0.7197 0.7064 0.6924 0.6784 0.6654 0.6549 0.6484 0.6478 0.6543 0.6688 0.6905 0.7164 0.7403 0.7521 0.7399 0.6983 0.6530 0.7387 - 0.5524 0.6255 0.6740 0.7069 0.7286 0.7421 0.7502 0.7550 0.7581 0.7606 0.7631 0.7660 0.7692 0.7728 0.7766 0.7804 0.7842 0.7879 0.7913 0.7942 0.7962 0.7966 0.7947 0.7897 0.7807 0.7672 0.7491 0.7268 0.7018 0.6766 0.6550 0.6419 0.6422 0.6592 0.6915 0.7285 0.7487 0.7256 0.6627 0.7241 - 0.5498 0.6446 0.7090 0.7530 0.7819 0.7995 0.8090 0.8129 0.8131 0.8110 0.8075 0.8029 0.7976 0.7916 0.7851 0.7784 0.7719 0.7663 0.7620 0.7598 0.7599 0.7627 0.7679 0.7748 0.7822 0.7882 0.7904 0.7864 0.7737 0.7509 0.7192 0.6830 0.6510 0.6352 0.6462 0.6853 0.7325 0.7422 0.6787 0.7110 - 0.8395 0.9420 1.0059 1.0454 1.0672 1.0766 1.0773 1.0725 1.0644 1.0544 1.0432 1.0308 1.0170 1.0014 0.9835 0.9631 0.9400 0.9146 0.8874 0.8593 0.8316 0.8058 0.7838 0.7674 0.7580 0.7565 0.7623 0.7725 0.7823 0.7852 0.7744 0.7461 0.7030 0.6578 0.6322 0.6470 0.7010 0.7445 0.6965 0.6996 - 0.9839 1.0856 1.1451 1.1789 1.1951 1.1992 1.1956 1.1877 1.1779 1.1680 1.1586 1.1501 1.1421 1.1342 1.1255 1.1153 1.1025 1.0863 1.0656 1.0394 1.0072 0.9689 0.9255 0.8793 0.8341 0.7948 0.7665 0.7530 0.7548 0.7671 0.7798 0.7793 0.7544 0.7053 0.6515 0.6296 0.6679 0.7345 0.7125 0.6900 - 1.0960 1.2226 1.2973 1.3394 1.3583 1.3609 1.3523 1.3367 1.3172 1.2957 1.2737 1.2519 1.2305 1.2100 1.1908 1.1733 1.1579 1.1448 1.1335 1.1225 1.1094 1.0912 1.0642 1.0260 0.9759 0.9166 0.8549 0.8002 0.7628 0.7492 0.7574 0.7740 0.7772 0.7480 0.6883 0.6346 0.6429 0.7172 0.7248 0.6821 - 1.3688 1.4954 1.5631 1.5958 1.6051 1.5991 1.5837 1.5633 1.5406 1.5169 1.4923 1.4661 1.4373 1.4049 1.3685 1.3285 1.2864 1.2447 1.2065 1.1745 1.1502 1.1330 1.1193 1.1029 1.0763 1.0334 0.9726 0.8994 0.8267 0.7717 0.7476 0.7545 0.7731 0.7707 0.7245 0.6542 0.6297 0.6980 0.7331 0.6758 - 1.3427 1.4578 1.5181 1.5471 1.5557 1.5513 1.5397 1.5258 1.5130 1.5036 1.4984 1.4968 1.4970 1.4956 1.4891 1.4734 1.4458 1.4054 1.3542 1.2970 1.2405 1.1919 1.1559 1.1324 1.1155 1.0941 1.0561 0.9943 0.9129 0.8288 0.7667 0.7447 0.7586 0.7750 0.7504 0.6783 0.6268 0.6807 0.7378 0.6710 - 1.3681 1.5459 1.6544 1.7151 1.7384 1.7323 1.7046 1.6623 1.6121 1.5605 1.5132 1.4755 1.4513 1.4420 1.4460 1.4579 1.4695 1.4713 1.4552 1.4173 1.3602 1.2923 1.2263 1.1735 1.1391 1.1179 1.0956 1.0547 0.9849 0.8931 0.8045 0.7509 0.7469 0.7695 0.7647 0.6999 0.6301 0.6672 0.7399 0.6675 - 1.8747 2.0930 2.2104 2.2620 2.2685 2.2442 2.1982 2.1346 2.0544 1.9582 1.8490 1.7337 1.6229 1.5291 1.4631 1.4301 1.4271 1.4427 1.4597 1.4607 1.4341 1.3789 1.3051 1.2303 1.1710 1.1343 1.1121 1.0844 1.0303 0.9436 0.8430 0.7658 0.7420 0.7622 0.7708 0.7157 0.6355 0.6579 0.7404 0.6652 - 2.1389 2.2481 2.2513 2.2112 2.1679 2.1440 2.1449 2.1610 2.1729 2.1596 2.1058 2.0075 1.8740 1.7259 1.5891 1.4864 1.4304 1.4190 1.4357 1.4559 1.4560 1.4223 1.3567 1.2756 1.2010 1.1493 1.1205 1.0969 1.0529 0.9734 0.8697 0.7795 0.7415 0.7571 0.7727 0.7249 0.6400 0.6527 0.7404 0.6638 - 2.0725 2.0887 2.0075 1.9069 1.8368 1.8236 1.8694 1.9555 2.0496 2.1171 2.1304 2.0773 1.9640 1.8132 1.6571 1.5276 1.4461 1.4169 1.4266 1.4497 1.4582 1.4335 1.3733 1.2920 1.2130 1.1557 1.1235 1.1004 1.0596 0.9830 0.8791 0.7849 0.7419 0.7553 0.7730 0.7279 0.6416 0.6510 0.7403 0.6634 - 42.2151 31.4953 23.4990 18.6261 16.2710 15.4888 15.3517 15.1608 14.5353 13.4004 11.9070 10.3201 8.9061 7.8461 7.1914 6.8665 6.7119 6.5505 6.2523 5.7761 5.1738 4.5590 4.0513 3.7214 3.5582 3.4763 3.3611 3.1321 2.7905 2.4213 2.1390 2.0031 1.9603 1.8745 1.6522 1.3694 1.2231 1.2258 1.0386 0.8792 - 31.3536 24.5164 19.5805 16.8002 15.6624 15.4213 15.3829 15.0652 14.2546 12.9818 11.4430 9.9013 8.5915 7.6528 7.0996 6.8342 6.6938 6.5136 6.1838 5.6829 5.0752 4.4756 3.9959 3.6940 3.5480 3.4684 3.3444 3.1044 2.7588 2.3957 2.1259 2.0002 1.9592 1.8683 1.6417 1.3620 1.2222 1.2253 1.0355 0.8795 - 15.2661 14.9364 14.8574 15.1036 15.4233 15.5177 15.1767 14.3368 13.0800 11.5922 10.1002 8.8075 7.8437 7.2382 6.9243 6.7693 6.6222 6.3641 5.9439 5.3888 4.7871 4.2478 3.8545 3.6292 3.5233 3.4409 3.2867 3.0166 2.6642 2.3237 2.0913 1.9933 1.9548 1.8476 1.6101 1.3410 1.2203 1.2237 1.0264 0.8804 - 11.9151 13.7990 14.9026 15.3582 15.2115 14.5317 13.4402 12.1032 10.7063 9.4215 8.3761 7.6320 7.1779 6.9394 6.8034 6.6509 6.3915 5.9880 5.4637 4.8906 4.3608 3.9515 3.6947 3.5643 3.4872 3.3752 3.1668 2.8594 2.5136 2.2212 2.0487 1.9863 1.9424 1.8073 1.5571 1.3101 1.2191 1.2198 1.0115 0.8819 - 12.7684 13.5425 13.5518 13.0399 12.1811 11.1381 10.0609 9.0741 8.2638 7.6700 7.2850 7.0604 6.9206 6.7815 6.5711 6.2474 5.8086 5.2922 4.7630 4.2922 3.9340 3.7067 3.5855 3.5108 3.4108 3.2309 2.9592 2.6347 2.3306 2.1165 2.0149 1.9786 1.9121 1.7403 1.4853 1.2755 1.2204 1.2117 0.9910 0.8839 - 8.8901 9.2253 9.1453 8.8529 8.4699 8.0820 7.7438 7.4796 7.2860 7.1377 6.9961 6.8195 6.5737 6.2413 5.8271 5.3582 4.8786 4.4383 4.0797 3.8256 3.6711 3.5836 3.5124 3.4045 3.2239 2.9667 2.6655 2.3777 2.1607 2.0417 1.9971 1.9583 1.8490 1.6427 1.4019 1.2456 1.2250 1.1967 0.9660 0.8863 - 5.9578 6.6614 7.0634 7.2797 7.3669 7.3584 7.2737 7.1224 6.9082 6.6326 6.2995 5.9179 5.5047 5.0836 4.6828 4.3302 4.0470 3.8425 3.7102 3.6279 3.5616 3.4745 3.3364 3.1347 2.8796 2.6034 2.3507 2.1617 2.0537 2.0092 1.9783 1.9003 1.7400 1.5200 1.3214 1.2286 1.2306 1.1715 0.9380 0.8890 - 5.8177 6.4061 6.6958 6.7796 6.7076 6.5187 6.2464 5.9205 5.5670 5.2087 4.8652 4.5527 4.2841 4.0669 3.9031 3.7873 3.7069 3.6433 3.5747 3.4800 3.3437 3.1603 2.9371 2.6940 2.4597 2.2637 2.1265 2.0507 2.0165 1.9855 1.9152 1.7793 1.5882 1.3928 1.2619 1.2278 1.2305 1.1334 0.9094 0.8916 - 4.5101 4.8701 5.0062 5.0007 4.9016 4.7461 4.5646 4.3808 4.2118 4.0676 3.9523 3.8640 3.7964 3.7398 3.6823 3.6118 3.5178 3.3929 3.2352 3.0487 2.8434 2.6349 2.4409 2.2785 2.1591 2.0846 2.0450 2.0189 1.9786 1.8990 1.7687 1.5988 1.4247 1.2935 1.2366 1.2368 1.2151 1.0817 0.8834 0.8939 - 3.0788 3.4786 3.7172 3.8527 3.9171 3.9331 3.9178 3.8832 3.8364 3.7800 3.7134 3.6339 3.5380 3.4226 3.2870 3.1325 2.9641 2.7891 2.6172 2.4586 2.3226 2.2158 2.1404 2.0929 2.0641 2.0397 2.0033 1.9397 1.8403 1.7070 1.5549 1.4099 1.3012 1.2476 1.2409 1.2381 1.1748 1.0196 0.8636 0.8955 - 2.9292 3.2823 3.4906 3.6001 3.6351 3.6142 3.5524 3.4617 3.3514 3.2283 3.0973 2.9621 2.8260 2.6925 2.5652 2.4483 2.3457 2.2605 2.1944 2.1467 2.1144 2.0916 2.0703 2.0415 1.9964 1.9284 1.8352 1.7201 1.5925 1.4669 1.3605 1.2875 1.2536 1.2493 1.2474 1.2096 1.1067 0.9552 0.8529 0.8961 - 2.3388 2.5808 2.7082 2.7599 2.7577 2.7184 2.6560 2.5818 2.5044 2.4300 2.3626 2.3041 2.2554 2.2162 2.1853 2.1611 2.1413 2.1227 2.1020 2.0754 2.0391 1.9897 1.9251 1.8450 1.7513 1.6486 1.5442 1.4467 1.3649 1.3059 1.2725 1.2611 1.2607 1.2531 1.2174 1.1384 1.0199 0.9002 0.8529 0.8950 - 1.6023 1.8430 1.9987 2.0982 2.1570 2.1872 2.1982 2.1976 2.1906 2.1804 2.1683 2.1543 2.1374 2.1159 2.0881 2.0527 2.0087 1.9555 1.8934 1.8235 1.7474 1.6675 1.5868 1.5090 1.4381 1.3778 1.3312 1.2998 1.2829 1.2769 1.2754 1.2691 1.2480 1.2031 1.1304 1.0350 0.9357 0.8659 0.8627 0.8920 - 1.5636 1.7779 1.9170 2.0042 2.0520 2.0698 2.0656 2.0460 2.0157 1.9781 1.9354 1.8886 1.8383 1.7850 1.7292 1.6717 1.6137 1.5568 1.5025 1.4528 1.4090 1.3723 1.3435 1.3227 1.3093 1.3019 1.2983 1.2954 1.2894 1.2759 1.2509 1.2111 1.1554 1.0859 1.0086 0.9347 0.8791 0.8581 0.8785 0.8867 - 1.2734 1.4273 1.5207 1.5733 1.5957 1.5962 1.5819 1.5586 1.5307 1.5014 1.4727 1.4459 1.4215 1.3999 1.3810 1.3651 1.3520 1.3420 1.3347 1.3299 1.3270 1.3248 1.3221 1.3175 1.3094 1.2961 1.2765 1.2494 1.2143 1.1713 1.1212 1.0660 1.0089 0.9546 0.9087 0.8769 0.8644 0.8726 0.8939 0.8788 - 0.8700 1.0214 1.1267 1.2005 1.2507 1.2835 1.3041 1.3169 1.3249 1.3305 1.3349 1.3385 1.3414 1.3432 1.3434 1.3415 1.3372 1.3301 1.3200 1.3068 1.2901 1.2698 1.2456 1.2176 1.1858 1.1507 1.1130 1.0738 1.0342 0.9957 0.9600 0.9285 0.9030 0.8851 0.8760 0.8760 0.8837 0.8953 0.9016 0.8683 - 0.9062 1.0436 1.1390 1.2050 1.2481 1.2738 1.2865 1.2901 1.2874 1.2805 1.2708 1.2589 1.2450 1.2291 1.2112 1.1914 1.1699 1.1469 1.1229 1.0983 1.0735 1.0488 1.0247 1.0014 0.9793 0.9588 0.9405 0.9249 0.9123 0.9029 0.8969 0.8940 0.8941 0.8965 0.9007 0.9054 0.9085 0.9070 0.8957 0.8553 - 0.7594 0.8618 0.9298 0.9741 1.0006 1.0137 1.0175 1.0152 1.0092 1.0015 0.9932 0.9848 0.9767 0.9689 0.9614 0.9543 0.9476 0.9415 0.9362 0.9317 0.9282 0.9257 0.9241 0.9233 0.9231 0.9235 0.9243 0.9255 0.9269 0.9283 0.9293 0.9296 0.9287 0.9264 0.9223 0.9159 0.9065 0.8930 0.8737 0.8401 - 0.5269 0.6309 0.7075 0.7647 0.8070 0.8378 0.8603 0.8771 0.8901 0.9009 0.9104 0.9191 0.9271 0.9343 0.9408 0.9463 0.9509 0.9546 0.9575 0.9596 0.9609 0.9615 0.9613 0.9602 0.9581 0.9550 0.9510 0.9461 0.9403 0.9337 0.9261 0.9176 0.9082 0.8980 0.8872 0.8758 0.8637 0.8509 0.8376 0.8232 - 0.6052 0.7031 0.7742 0.8262 0.8633 0.8888 0.9056 0.9163 0.9228 0.9267 0.9289 0.9299 0.9299 0.9289 0.9270 0.9242 0.9204 0.9159 0.9107 0.9050 0.8990 0.8927 0.8861 0.8792 0.8721 0.8648 0.8574 0.8500 0.8426 0.8354 0.8283 0.8213 0.8146 0.8084 0.8028 0.7981 0.7945 0.7925 0.7939 0.8052 - 0.5289 0.6051 0.6586 0.6964 0.7222 0.7390 0.7491 0.7549 0.7580 0.7597 0.7606 0.7612 0.7616 0.7618 0.7617 0.7613 0.7606 0.7596 0.7584 0.7570 0.7556 0.7542 0.7526 0.7508 0.7489 0.7468 0.7446 0.7423 0.7400 0.7377 0.7355 0.7333 0.7313 0.7298 0.7290 0.7296 0.7321 0.7380 0.7512 0.7870 - 0.3833 0.4651 0.5274 0.5756 0.6126 0.6409 0.6626 0.6796 0.6933 0.7049 0.7150 0.7242 0.7324 0.7398 0.7463 0.7517 0.7563 0.7599 0.7628 0.7649 0.7664 0.7673 0.7675 0.7670 0.7657 0.7637 0.7609 0.7574 0.7533 0.7485 0.7430 0.7368 0.7300 0.7227 0.7156 0.7092 0.7049 0.7055 0.7178 0.7692 - 0.4805 0.5613 0.6213 0.6664 0.6998 0.7240 0.7413 0.7538 0.7630 0.7703 0.7764 0.7817 0.7864 0.7906 0.7942 0.7973 0.7998 0.8019 0.8037 0.8052 0.8065 0.8077 0.8086 0.8092 0.8093 0.8090 0.8080 0.8063 0.8037 0.8001 0.7951 0.7883 0.7791 0.7675 0.7531 0.7362 0.7180 0.7021 0.6991 0.7525 - 0.4391 0.5058 0.5541 0.5897 0.6156 0.6340 0.6470 0.6563 0.6634 0.6692 0.6745 0.6795 0.6844 0.6891 0.6936 0.6977 0.7017 0.7055 0.7093 0.7132 0.7174 0.7219 0.7269 0.7322 0.7380 0.7443 0.7512 0.7586 0.7664 0.7745 0.7822 0.7887 0.7929 0.7931 0.7877 0.7745 0.7522 0.7220 0.6962 0.7374 - 0.3453 0.4224 0.4817 0.5281 0.5641 0.5918 0.6130 0.6295 0.6427 0.6535 0.6626 0.6705 0.6772 0.6827 0.6870 0.6902 0.6921 0.6930 0.6929 0.6921 0.6907 0.6889 0.6869 0.6850 0.6833 0.6824 0.6828 0.6852 0.6901 0.6983 0.7099 0.7250 0.7428 0.7614 0.7776 0.7860 0.7792 0.7508 0.7062 0.7245 - 0.4704 0.5523 0.6131 0.6588 0.6927 0.7172 0.7349 0.7477 0.7573 0.7648 0.7712 0.7767 0.7815 0.7856 0.7888 0.7910 0.7922 0.7922 0.7911 0.7887 0.7849 0.7796 0.7725 0.7634 0.7524 0.7396 0.7254 0.7107 0.6965 0.6846 0.6770 0.6759 0.6837 0.7017 0.7288 0.7594 0.7806 0.7731 0.7238 0.7138 - 0.4799 0.5547 0.6087 0.6486 0.6776 0.6983 0.7131 0.7238 0.7320 0.7389 0.7452 0.7511 0.7569 0.7625 0.7680 0.7734 0.7786 0.7838 0.7891 0.7945 0.7998 0.8047 0.8088 0.8114 0.8117 0.8087 0.8016 0.7894 0.7720 0.7495 0.7237 0.6980 0.6777 0.6698 0.6811 0.7132 0.7559 0.7800 0.7433 0.7053 - 0.4672 0.5621 0.6331 0.6868 0.7268 0.7558 0.7763 0.7905 0.8002 0.8066 0.8107 0.8128 0.8131 0.8119 0.8090 0.8048 0.7995 0.7936 0.7876 0.7822 0.7781 0.7759 0.7761 0.7789 0.7844 0.7920 0.8002 0.8071 0.8097 0.8045 0.7887 0.7613 0.7253 0.6893 0.6676 0.6758 0.7186 0.7701 0.7598 0.6991 - 0.6912 0.8018 0.8802 0.9360 0.9745 0.9997 1.0152 1.0239 1.0281 1.0295 1.0288 1.0265 1.0225 1.0165 1.0082 0.9972 0.9831 0.9660 0.9459 0.9229 0.8977 0.8711 0.8444 0.8195 0.7984 0.7834 0.7763 0.7779 0.7867 0.7985 0.8065 0.8025 0.7798 0.7388 0.6919 0.6648 0.6851 0.7486 0.7708 0.6947 - 0.8204 0.9295 1.0031 1.0532 1.0859 1.1057 1.1164 1.1213 1.1227 1.1225 1.1215 1.1202 1.1188 1.1171 1.1148 1.1115 1.1067 1.0999 1.0903 1.0769 1.0585 1.0341 1.0029 0.9649 0.9216 0.8761 0.8333 0.7989 0.7785 0.7746 0.7846 0.7992 0.8033 0.7825 0.7341 0.6799 0.6657 0.7228 0.7755 0.6920 - 0.8944 1.0285 1.1209 1.1846 1.2263 1.2510 1.2632 1.2666 1.2641 1.2577 1.2487 1.2377 1.2252 1.2113 1.1964 1.1811 1.1661 1.1523 1.1405 1.1308 1.1225 1.1137 1.1015 1.0821 1.0521 1.0094 0.9551 0.8943 0.8363 0.7928 0.7729 0.7778 0.7951 0.8009 0.7717 0.7095 0.6626 0.6989 0.7747 0.6905 - 1.1118 1.2560 1.3492 1.4083 1.4427 1.4597 1.4650 1.4632 1.4575 1.4498 1.4409 1.4306 1.4180 1.4018 1.3810 1.3549 1.3236 1.2881 1.2507 1.2143 1.1821 1.1565 1.1382 1.1252 1.1122 1.0920 1.0569 1.0030 0.9333 0.8595 0.8001 0.7717 0.7774 0.7973 0.7935 0.7406 0.6716 0.6806 0.7703 0.6899 - 1.1305 1.2541 1.3306 1.3779 1.4051 1.4183 1.4226 1.4218 1.4193 1.4175 1.4179 1.4212 1.4273 1.4349 1.4419 1.4450 1.4407 1.4258 1.3981 1.3579 1.3083 1.2552 1.2059 1.1667 1.1404 1.1232 1.1054 1.0738 1.0185 0.9406 0.8560 0.7914 0.7690 0.7850 0.8002 0.7652 0.6865 0.6686 0.7640 0.6899 - 1.0908 1.2634 1.3894 1.4806 1.5417 1.5762 1.5883 1.5822 1.5623 1.5327 1.4978 1.4623 1.4309 1.4081 1.3973 1.3994 1.4116 1.4279 1.4392 1.4365 1.4130 1.3679 1.3072 1.2424 1.1866 1.1482 1.1256 1.1058 1.0703 1.0054 0.9155 0.8266 0.7742 0.7746 0.7982 0.7813 0.7018 0.6620 0.7575 0.6902 - 1.3978 1.6469 1.8201 1.9331 1.9971 2.0242 2.0255 2.0088 1.9777 1.9322 1.8705 1.7924 1.7013 1.6052 1.5159 1.4459 1.4043 1.3933 1.4059 1.4273 1.4395 1.4273 1.3850 1.3189 1.2453 1.1829 1.1426 1.1198 1.0952 1.0455 0.9614 0.8615 0.7867 0.7694 0.7936 0.7902 0.7142 0.6591 0.7521 0.6905 - 1.6956 1.9050 2.0004 2.0180 1.9920 1.9548 1.9310 1.9324 1.9563 1.9884 2.0079 1.9957 1.9403 1.8433 1.7188 1.5903 1.4830 1.4153 1.3923 1.4039 1.4280 1.4395 1.4199 1.3656 1.2894 1.2139 1.1586 1.1278 1.1058 1.0654 0.9883 0.8855 0.7981 0.7680 0.7899 0.7943 0.7221 0.6581 0.7486 0.6908 - 1.7488 1.8991 1.9198 1.8607 1.7695 1.6902 1.6547 1.6759 1.7470 1.8444 1.9358 1.9898 1.9852 1.9176 1.8003 1.6607 1.5311 1.4387 1.3959 1.3971 1.4209 1.4389 1.4280 1.3799 1.3050 1.2259 1.1653 1.1308 1.1088 1.0712 0.9970 0.8939 0.8026 0.7679 0.7886 0.7955 0.7247 0.6579 0.7473 0.6909 - 18.2725 15.0607 13.4873 13.2184 13.5727 13.9118 13.8181 13.1473 11.9894 10.5788 9.1895 8.0445 7.2590 6.8241 6.6302 6.5181 6.3395 6.0071 5.5179 4.9436 4.3937 3.9652 3.7006 3.5707 3.4906 3.3630 3.1301 2.8053 2.4673 2.2114 2.0829 2.0362 1.9598 1.7684 1.5005 1.3087 1.2774 1.2280 0.9700 0.9358 - 14.4142 13.0618 12.7209 13.0910 13.6400 13.9081 13.6390 12.8046 11.5583 10.1499 8.8348 7.7998 7.1225 6.7658 6.6080 6.4938 6.2899 5.9282 5.4215 4.8493 4.3189 3.9183 3.6785 3.5619 3.4813 3.3442 3.1012 2.7733 2.4416 2.1973 2.0785 2.0343 1.9537 1.7578 1.4914 1.3059 1.2778 1.2255 0.9677 0.9357 - 9.8155 11.2192 12.4390 13.3339 13.7168 13.4983 12.7259 11.5636 10.2383 8.9770 7.9516 7.2451 6.8441 6.6564 6.5487 6.3923 6.1032 5.6649 5.1268 4.5802 4.1187 3.8010 3.6266 3.5381 3.4479 3.2804 3.0106 2.6789 2.3696 2.1602 2.0678 2.0278 1.9335 1.7255 1.4652 1.2985 1.2789 1.2174 0.9611 0.9354 - 10.3509 11.9734 12.8038 12.9466 12.5080 11.6430 10.5429 9.4031 8.3879 7.6032 7.0838 6.7957 6.6539 6.5506 6.3870 6.1010 5.6833 5.1757 4.6541 4.1997 3.8688 3.6725 3.5720 3.4956 3.3693 3.1509 2.8512 2.5308 2.2683 2.1147 2.0555 2.0125 1.8932 1.6700 1.4249 1.2895 1.2803 1.2029 0.9508 0.9348 - 10.0986 10.6261 10.5524 10.0943 9.4208 8.6818 7.9981 7.4492 7.0665 6.8357 6.7065 6.6091 6.4731 6.2463 5.9077 5.4731 4.9894 4.5201 4.1255 3.8427 3.6735 3.5828 3.5117 3.3989 3.2060 2.9350 2.6292 2.3547 2.1669 2.0777 2.0420 1.9787 1.8247 1.5921 1.3773 1.2828 1.2805 1.1806 0.9379 0.9338 - 6.6461 7.0372 7.1424 7.1074 7.0158 6.9177 6.8360 6.7692 6.6978 6.5931 6.4264 6.1787 5.8471 5.4481 5.0152 4.5923 4.2228 3.9380 3.7480 3.6374 3.5694 3.4964 3.3753 3.1832 2.9271 2.6435 2.3848 2.1970 2.0962 2.0557 2.0148 1.9108 1.7228 1.4985 1.3321 1.2815 1.2762 1.1492 0.9241 0.9321 - 4.8840 5.5935 6.0626 6.3627 6.5254 6.5698 6.5096 6.3562 6.1215 5.8201 5.4714 5.0990 4.7301 4.3921 4.1079 3.8916 3.7442 3.6524 3.5907 3.5267 3.4297 3.2789 3.0714 2.8240 2.5700 2.3486 2.1902 2.1025 2.0637 2.0285 1.9474 1.7952 1.5927 1.4050 1.3008 1.2856 1.2622 1.1085 0.9114 0.9296 - 4.8123 5.3540 5.6426 5.7453 5.7025 5.5499 5.3216 5.0496 4.7628 4.4856 4.2371 4.0303 3.8712 3.7583 3.6827 3.6290 3.5779 3.5092 3.4064 3.2603 3.0724 2.8552 2.6308 2.4255 2.2627 2.1548 2.0969 2.0666 2.0291 1.9508 1.8152 1.6361 1.4574 1.3333 1.2899 1.2887 1.2325 1.0598 0.9021 0.9259 - 3.5973 3.9435 4.1123 4.1656 4.1414 4.0706 3.9785 3.8844 3.8012 3.7347 3.6849 3.6463 3.6097 3.5641 3.4986 3.4046 3.2779 3.1199 2.9381 2.7452 2.5575 2.3915 2.2603 2.1700 2.1171 2.0876 2.0599 2.0103 1.9209 1.7879 1.6266 1.4692 1.3530 1.2998 1.2942 1.2780 1.1824 1.0077 0.8982 0.9208 - 2.5491 2.9392 3.2027 3.3796 3.4914 3.5541 3.5801 3.5780 3.5534 3.5086 3.4438 3.3584 3.2520 3.1256 2.9825 2.8285 2.6720 2.5224 2.3893 2.2804 2.1998 2.1468 2.1152 2.0939 2.0684 2.0243 1.9506 1.8438 1.7109 1.5686 1.4408 1.3499 1.3066 1.2996 1.2929 1.2391 1.1130 0.9590 0.9008 0.9141 - 2.4608 2.7981 3.0144 3.1421 3.1992 3.2004 3.1592 3.0870 2.9938 2.8874 2.7745 2.6603 2.5495 2.4463 2.3544 2.2769 2.2156 2.1707 2.1401 2.1195 2.1026 2.0813 2.0477 1.9949 1.9191 1.8209 1.7065 1.5869 1.4761 1.3883 1.3329 1.3098 1.3067 1.2992 1.2583 1.1657 1.0341 0.9225 0.9095 0.9055 - 1.9237 2.1554 2.2937 2.3674 2.3935 2.3859 2.3569 2.3167 2.2733 2.2323 2.1972 2.1695 2.1493 2.1351 2.1247 2.1153 2.1033 2.0852 2.0576 2.0177 1.9633 1.8942 1.8117 1.7193 1.6228 1.5297 1.4477 1.3838 1.3420 1.3217 1.3164 1.3139 1.2984 1.2548 1.1755 1.0686 0.9632 0.9048 0.9219 0.8949 - 1.3512 1.5830 1.7477 1.8652 1.9466 2.0008 2.0352 2.0558 2.0669 2.0710 2.0693 2.0615 2.0468 2.0240 1.9919 1.9500 1.8984 1.8380 1.7705 1.6984 1.6249 1.5534 1.4877 1.4312 1.3865 1.3553 1.3371 1.3294 1.3273 1.3235 1.3100 1.2788 1.2252 1.1499 1.0614 0.9767 0.9190 0.9075 0.9338 0.8823 - 1.3327 1.5399 1.6844 1.7828 1.8440 1.8755 1.8840 1.8753 1.8540 1.8238 1.7872 1.7458 1.7009 1.6537 1.6053 1.5571 1.5107 1.4678 1.4300 1.3985 1.3742 1.3572 1.3470 1.3421 1.3404 1.3389 1.3342 1.3228 1.3013 1.2671 1.2192 1.1590 1.0906 1.0216 0.9620 0.9224 0.9105 0.9241 0.9396 0.8678 - 1.0727 1.2207 1.3188 1.3814 1.4167 1.4317 1.4323 1.4240 1.4108 1.3960 1.3816 1.3690 1.3587 1.3509 1.3457 1.3428 1.3419 1.3424 1.3438 1.3452 1.3454 1.3432 1.3370 1.3254 1.3073 1.2817 1.2484 1.2079 1.1614 1.1109 1.0593 1.0102 0.9680 0.9368 0.9198 0.9182 0.9285 0.9409 0.9342 0.8518 - 0.7493 0.8945 1.0032 1.0855 1.1469 1.1922 1.2255 1.2503 1.2695 1.2848 1.2975 1.3080 1.3162 1.3216 1.3238 1.3224 1.3169 1.3072 1.2932 1.2750 1.2527 1.2265 1.1969 1.1643 1.1296 1.0937 1.0581 1.0241 0.9935 0.9676 0.9476 0.9344 0.9283 0.9289 0.9346 0.9426 0.9478 0.9424 0.9148 0.8346 - 0.7834 0.9175 1.0165 1.0894 1.1409 1.1751 1.1958 1.2064 1.2097 1.2076 1.2016 1.1924 1.1807 1.1665 1.1501 1.1319 1.1121 1.0913 1.0702 1.0493 1.0292 1.0104 0.9933 0.9782 0.9655 0.9554 0.9481 0.9437 0.9423 0.9435 0.9466 0.9508 0.9550 0.9577 0.9576 0.9527 0.9407 0.9184 0.8819 0.8170 - 0.6546 0.7536 0.8239 0.8735 0.9068 0.9275 0.9390 0.9443 0.9457 0.9451 0.9437 0.9421 0.9407 0.9398 0.9392 0.9391 0.9394 0.9404 0.9421 0.9445 0.9477 0.9515 0.9557 0.9601 0.9642 0.9680 0.9710 0.9731 0.9740 0.9735 0.9709 0.9661 0.9584 0.9478 0.9339 0.9166 0.8957 0.8705 0.8402 0.7995 - 0.4636 0.5634 0.6413 0.7030 0.7517 0.7899 0.8200 0.8442 0.8643 0.8818 0.8974 0.9115 0.9244 0.9360 0.9462 0.9548 0.9619 0.9674 0.9715 0.9741 0.9753 0.9752 0.9736 0.9706 0.9661 0.9601 0.9527 0.9441 0.9343 0.9236 0.9118 0.8991 0.8856 0.8714 0.8568 0.8420 0.8271 0.8121 0.7972 0.7829 - 0.5288 0.6253 0.6992 0.7562 0.7992 0.8308 0.8534 0.8693 0.8804 0.8881 0.8933 0.8968 0.8987 0.8992 0.8983 0.8962 0.8928 0.8885 0.8834 0.8777 0.8715 0.8650 0.8583 0.8513 0.8441 0.8367 0.8293 0.8220 0.8148 0.8078 0.8010 0.7943 0.7878 0.7816 0.7759 0.7708 0.7664 0.7628 0.7612 0.7679 - 0.4655 0.5396 0.5946 0.6357 0.6657 0.6871 0.7020 0.7124 0.7199 0.7257 0.7305 0.7347 0.7386 0.7422 0.7455 0.7484 0.7508 0.7530 0.7548 0.7565 0.7580 0.7594 0.7605 0.7614 0.7619 0.7620 0.7618 0.7613 0.7605 0.7593 0.7576 0.7555 0.7530 0.7500 0.7469 0.7437 0.7406 0.7382 0.7388 0.7549 - 0.3426 0.4210 0.4839 0.5350 0.5765 0.6099 0.6371 0.6596 0.6786 0.6953 0.7103 0.7240 0.7366 0.7480 0.7583 0.7675 0.7755 0.7824 0.7884 0.7936 0.7979 0.8016 0.8045 0.8067 0.8081 0.8086 0.8085 0.8075 0.8059 0.8034 0.8001 0.7957 0.7900 0.7831 0.7748 0.7652 0.7541 0.7421 0.7325 0.7444 - 0.4218 0.5020 0.5646 0.6140 0.6523 0.6816 0.7039 0.7210 0.7343 0.7452 0.7544 0.7624 0.7695 0.7757 0.7812 0.7859 0.7899 0.7934 0.7965 0.7994 0.8022 0.8048 0.8074 0.8098 0.8122 0.8144 0.8164 0.8184 0.8203 0.8219 0.8229 0.8230 0.8216 0.8182 0.8120 0.8020 0.7869 0.7657 0.7406 0.7366 - 0.3929 0.4578 0.5071 0.5451 0.5741 0.5959 0.6125 0.6252 0.6356 0.6444 0.6524 0.6598 0.6669 0.6735 0.6796 0.6852 0.6903 0.6950 0.6993 0.7035 0.7076 0.7118 0.7159 0.7202 0.7248 0.7297 0.7352 0.7415 0.7489 0.7575 0.7673 0.7781 0.7893 0.8002 0.8092 0.8138 0.8100 0.7925 0.7578 0.7315 - 0.3101 0.3835 0.4430 0.4918 0.5317 0.5640 0.5904 0.6121 0.6303 0.6461 0.6600 0.6724 0.6833 0.6929 0.7011 0.7079 0.7132 0.7171 0.7199 0.7214 0.7220 0.7215 0.7201 0.7178 0.7147 0.7112 0.7076 0.7045 0.7027 0.7028 0.7059 0.7128 0.7244 0.7413 0.7628 0.7863 0.8051 0.8076 0.7777 0.7288 - 0.4105 0.4917 0.5553 0.6056 0.6449 0.6751 0.6984 0.7165 0.7309 0.7430 0.7534 0.7628 0.7712 0.7789 0.7856 0.7915 0.7965 0.8005 0.8037 0.8059 0.8071 0.8072 0.8057 0.8026 0.7973 0.7897 0.7797 0.7674 0.7530 0.7372 0.7215 0.7078 0.6991 0.6992 0.7116 0.7380 0.7741 0.8037 0.7941 0.7284 - 0.4283 0.5008 0.5559 0.5986 0.6314 0.6564 0.6756 0.6907 0.7029 0.7135 0.7230 0.7318 0.7401 0.7478 0.7550 0.7617 0.7680 0.7740 0.7800 0.7860 0.7922 0.7986 0.8052 0.8116 0.8174 0.8220 0.8243 0.8233 0.8177 0.8063 0.7882 0.7640 0.7362 0.7104 0.6952 0.7008 0.7335 0.7830 0.8033 0.7297 - 0.4073 0.4972 0.5689 0.6268 0.6730 0.7095 0.7380 0.7603 0.7779 0.7918 0.8030 0.8118 0.8184 0.8228 0.8250 0.8250 0.8230 0.8193 0.8142 0.8082 0.8020 0.7961 0.7914 0.7885 0.7882 0.7910 0.7971 0.8057 0.8152 0.8227 0.8243 0.8156 0.7937 0.7595 0.7209 0.6945 0.7022 0.7535 0.8041 0.7323 - 0.5834 0.6934 0.7773 0.8418 0.8903 0.9260 0.9519 0.9705 0.9841 0.9942 1.0018 1.0076 1.0115 1.0135 1.0134 1.0108 1.0054 0.9970 0.9853 0.9703 0.9520 0.9303 0.9058 0.8794 0.8527 0.8279 0.8076 0.7946 0.7908 0.7963 0.8082 0.8199 0.8220 0.8051 0.7661 0.7172 0.6907 0.7246 0.7975 0.7357 - 0.7059 0.8134 0.8915 0.9492 0.9910 1.0205 1.0410 1.0552 1.0653 1.0729 1.0789 1.0839 1.0881 1.0914 1.0939 1.0953 1.0956 1.0948 1.0924 1.0880 1.0807 1.0691 1.0519 1.0276 0.9956 0.9563 0.9120 0.8670 0.8275 0.8003 0.7902 0.7972 0.8132 0.8214 0.8034 0.7532 0.6988 0.7027 0.7859 0.7396 - 0.7545 0.8833 0.9800 1.0534 1.1078 1.1467 1.1736 1.1914 1.2026 1.2090 1.2118 1.2116 1.2086 1.2028 1.1944 1.1838 1.1716 1.1586 1.1461 1.1350 1.1260 1.1189 1.1127 1.1047 1.0914 1.0687 1.0333 0.9844 0.9256 0.8655 0.8167 0.7913 0.7937 0.8123 0.8194 0.7863 0.7190 0.6905 0.7719 0.7435 - 0.9268 1.0738 1.1785 1.2525 1.3028 1.3351 1.3547 1.3659 1.3721 1.3756 1.3777 1.3786 1.3779 1.3746 1.3677 1.3559 1.3385 1.3151 1.2864 1.2537 1.2198 1.1877 1.1604 1.1401 1.1261 1.1149 1.0994 1.0712 1.0239 0.9580 0.8839 0.8212 0.7901 0.7964 0.8175 0.8077 0.7429 0.6870 0.7579 0.7472 - 0.9850 1.1084 1.1901 1.2450 1.2811 1.3040 1.3181 1.3267 1.3324 1.3370 1.3420 1.3483 1.3564 1.3667 1.3785 1.3905 1.4004 1.4051 1.4009 1.3848 1.3553 1.3137 1.2645 1.2151 1.1730 1.1433 1.1249 1.1096 1.0835 1.0341 0.9594 0.8746 0.8090 0.7884 0.8075 0.8173 0.7641 0.6894 0.7455 0.7504 - 0.9199 1.0679 1.1857 1.2822 1.3591 1.4171 1.4570 1.4803 1.4888 1.4847 1.4701 1.4478 1.4211 1.3943 1.3721 1.3591 1.3580 1.3685 1.3866 1.4044 1.4121 1.4011 1.3673 1.3139 1.2513 1.1934 1.1515 1.1273 1.1097 1.0788 1.0180 0.9294 0.8406 0.7915 0.7980 0.8188 0.7800 0.6947 0.7356 0.7531 - 1.0624 1.2953 1.4850 1.6332 1.7399 1.8089 1.8475 1.8642 1.8658 1.8555 1.8332 1.7963 1.7422 1.6714 1.5891 1.5054 1.4331 1.3840 1.3641 1.3710 1.3931 1.4125 1.4120 1.3815 1.3235 1.2524 1.1881 1.1450 1.1220 1.1002 1.0540 0.9713 0.8717 0.8008 0.7922 0.8170 0.7902 0.7001 0.7285 0.7550 - 1.2992 1.5563 1.7299 1.8256 1.8553 1.8408 1.8084 1.7826 1.7790 1.8012 1.8403 1.8784 1.8950 1.8737 1.8090 1.7083 1.5911 1.4824 1.4045 1.3692 1.3725 1.3965 1.4158 1.4081 1.3646 1.2944 1.2192 1.1616 1.1297 1.1094 1.0719 0.9961 0.8932 0.8097 0.7897 0.8148 0.7957 0.7040 0.7243 0.7562 - 1.3850 1.6242 1.7572 1.7946 1.7575 1.6791 1.5970 1.5446 1.5421 1.5926 1.6815 1.7818 1.8617 1.8944 1.8664 1.7818 1.6613 1.5355 1.4348 1.3785 1.3687 1.3892 1.4129 1.4133 1.3767 1.3087 1.2310 1.1685 1.1327 1.1121 1.0772 1.0041 0.9007 0.8132 0.7892 0.8140 0.7974 0.7053 0.7229 0.7566 - 9.1949 9.7018 10.6898 11.6889 12.2732 12.2266 11.5649 10.4787 9.2380 8.0987 7.2329 6.6975 6.4397 6.3344 6.2361 6.0311 5.6723 5.1876 4.6598 4.1881 3.8450 3.6470 3.5499 3.4708 3.3296 3.0893 2.7759 2.4651 2.2373 2.1248 2.0840 2.0185 1.8527 1.6063 1.3971 1.3243 1.3126 1.1583 0.9437 0.9324 - 8.4139 9.5665 10.8132 11.7940 12.2194 11.9904 11.1995 10.0692 8.8648 7.8141 7.0532 6.6072 6.4044 6.3153 6.2032 5.9705 5.5870 5.0924 4.5729 4.1232 3.8065 3.6293 3.5411 3.4591 3.3085 3.0597 2.7449 2.4407 2.2238 2.1200 2.0812 2.0118 1.8415 1.5957 1.3923 1.3245 1.3116 1.1545 0.9430 0.9318 - 8.2417 10.0126 11.2168 11.7661 11.6533 10.9935 9.9931 8.8901 7.8933 7.1378 6.6656 6.4319 6.3331 6.2463 6.0703 5.7551 5.3134 4.8094 4.3308 3.9535 3.7119 3.5869 3.5150 3.4177 3.2378 2.9675 2.6536 2.3729 2.1886 2.1082 2.0724 1.9899 1.8071 1.5647 1.3793 1.3252 1.3081 1.1431 0.9412 0.9300 - 9.1882 10.2871 10.6522 10.4383 9.8166 8.9823 8.1232 7.3857 6.8517 6.5326 6.3795 6.3059 6.2166 6.0362 5.7303 5.3124 4.8369 4.3783 4.0040 3.7505 3.6106 3.5371 3.4615 3.3239 3.0988 2.8083 2.5123 2.2789 2.1458 2.0941 2.0539 1.9471 1.7478 1.5165 1.3617 1.3270 1.3003 1.1240 0.9389 0.9270 - 7.8826 8.1925 8.0822 7.7457 7.3258 6.9310 6.6279 6.4377 6.3406 6.2882 6.2203 6.0831 5.8444 5.5023 5.0863 4.6480 4.2464 3.9290 3.7173 3.5993 3.5338 3.4647 3.3421 3.1418 2.8768 2.5927 2.3484 2.1870 2.1114 2.0776 2.0161 1.8753 1.6640 1.4580 1.3452 1.3294 1.2855 1.0974 0.9369 0.9226 - 5.0827 5.5205 5.7720 5.9327 6.0463 6.1292 6.1784 6.1787 6.1105 5.9582 5.7171 5.3978 5.0263 4.6400 4.2804 3.9831 3.7684 3.6351 3.5605 3.5062 3.4298 3.2984 3.1008 2.8526 2.5917 2.3649 2.2072 2.1250 2.0889 2.0452 1.9431 1.7688 1.5625 1.4005 1.3354 1.3298 1.2602 1.0647 0.9366 0.9168 - 4.1743 4.8500 5.3208 5.6290 5.7918 5.8225 5.7362 5.5522 5.2937 4.9880 4.6649 4.3536 4.0800 3.8623 3.7077 3.6103 3.5518 3.5053 3.4413 3.3357 3.1767 2.9696 2.7362 2.5090 2.3213 2.1940 2.1266 2.0938 2.0545 1.9690 1.8213 1.6336 1.4605 1.3579 1.3342 1.3223 1.2211 1.0283 0.9388 0.9094 - 4.0530 4.5169 4.7657 4.8531 4.8152 4.6864 4.5009 4.2906 4.0829 3.8988 3.7513 3.6453 3.5769 3.5350 3.5029 3.4614 3.3930 3.2854 3.1353 2.9494 2.7442 2.5426 2.3681 2.2381 2.1577 2.1167 2.0904 2.0477 1.9625 1.8266 1.6574 1.4947 1.3823 1.3393 1.3359 1.2984 1.1673 0.9926 0.9441 0.9006 - 2.9228 3.2396 3.4194 3.5103 3.5421 3.5387 3.5189 3.4962 3.4774 3.4637 3.4510 3.4316 3.3962 3.3359 3.2448 3.1212 2.9693 2.7990 2.6242 2.4610 2.3237 2.2218 2.1571 2.1220 2.1003 2.0711 2.0145 1.9186 1.7855 1.6332 1.4917 1.3911 1.3457 1.3394 1.3254 1.2498 1.1024 0.9631 0.9523 0.8902 - 2.1751 2.5444 2.8126 3.0073 3.1422 3.2278 3.2722 3.2819 3.2613 3.2136 3.1409 3.0458 2.9315 2.8031 2.6675 2.5331 2.4088 2.3027 2.2204 2.1636 2.1292 2.1094 2.0922 2.0644 2.0139 1.9336 1.8243 1.6958 1.5657 1.4552 1.3812 1.3485 1.3432 1.3341 1.2842 1.1753 1.0357 0.9452 0.9618 0.8783 - 2.1155 2.4229 2.6277 2.7537 2.8150 2.8239 2.7926 2.7324 2.6536 2.5649 2.4738 2.3863 2.3071 2.2397 2.1864 2.1475 2.1219 2.1061 2.0950 2.0818 2.0595 2.0213 1.9628 1.8827 1.7842 1.6753 1.5673 1.4731 1.4035 1.3637 1.3498 1.3477 1.3355 1.2911 1.2035 1.0860 0.9809 0.9421 0.9697 0.8651 - 1.6148 1.8270 1.9634 2.0466 2.0900 2.1051 2.1024 2.0907 2.0765 2.0645 2.0569 2.0541 2.0549 2.0568 2.0565 2.0504 2.0350 2.0074 1.9655 1.9090 1.8387 1.7578 1.6709 1.5843 1.5049 1.4395 1.3926 1.3657 1.3554 1.3536 1.3482 1.3257 1.2757 1.1960 1.0975 1.0052 0.9508 0.9522 0.9724 0.8509 - 1.1683 1.3865 1.5512 1.6766 1.7705 1.8391 1.8879 1.9214 1.9428 1.9540 1.9560 1.9486 1.9313 1.9037 1.8656 1.8177 1.7615 1.6994 1.6344 1.5700 1.5101 1.4578 1.4160 1.3861 1.3681 1.3601 1.3583 1.3570 1.3495 1.3288 1.2898 1.2308 1.1557 1.0745 1.0030 0.9580 0.9494 0.9677 0.9658 0.8361 - 1.1624 1.3558 1.4962 1.5957 1.6610 1.6980 1.7122 1.7091 1.6932 1.6680 1.6366 1.6011 1.5633 1.5249 1.4873 1.4523 1.4214 1.3957 1.3764 1.3636 1.3570 1.3554 1.3566 1.3580 1.3564 1.3485 1.3314 1.3029 1.2622 1.2102 1.1498 1.0866 1.0280 0.9823 0.9567 0.9536 0.9668 0.9768 0.9475 0.8212 - 0.9227 1.0599 1.1557 1.2215 1.2636 1.2879 1.2995 1.3031 1.3025 1.3007 1.2995 1.3001 1.3028 1.3075 1.3139 1.3213 1.3288 1.3356 1.3404 1.3421 1.3395 1.3314 1.3166 1.2945 1.2648 1.2282 1.1859 1.1400 1.0933 1.0490 1.0106 0.9813 0.9635 0.9581 0.9635 0.9743 0.9807 0.9678 0.9173 0.8068 - 0.6592 0.7961 0.9037 0.9894 1.0572 1.1104 1.1522 1.1854 1.2122 1.2341 1.2522 1.2665 1.2770 1.2833 1.2849 1.2815 1.2729 1.2593 1.2409 1.2182 1.1919 1.1629 1.1320 1.1004 1.0694 1.0403 1.0145 0.9934 0.9780 0.9688 0.9658 0.9681 0.9740 0.9810 0.9856 0.9831 0.9681 0.9348 0.8782 0.7936 - 0.6920 0.8193 0.9168 0.9912 1.0459 1.0841 1.1089 1.1233 1.1298 1.1305 1.1267 1.1195 1.1096 1.0973 1.0832 1.0678 1.0516 1.0353 1.0197 1.0054 0.9931 0.9830 0.9756 0.9708 0.9688 0.9692 0.9718 0.9761 0.9814 0.9869 0.9914 0.9935 0.9917 0.9846 0.9712 0.9503 0.9210 0.8828 0.8363 0.7820 - 0.5760 0.6690 0.7378 0.7887 0.8253 0.8505 0.8672 0.8783 0.8858 0.8914 0.8964 0.9014 0.9068 0.9127 0.9191 0.9260 0.9333 0.9410 0.9490 0.9572 0.9655 0.9736 0.9810 0.9874 0.9924 0.9955 0.9963 0.9948 0.9907 0.9838 0.9739 0.9609 0.9446 0.9253 0.9033 0.8791 0.8533 0.8263 0.7991 0.7726 - 0.4153 0.5096 0.5864 0.6498 0.7020 0.7449 0.7803 0.8100 0.8355 0.8580 0.8781 0.8964 0.9127 0.9272 0.9395 0.9497 0.9576 0.9632 0.9667 0.9681 0.9676 0.9652 0.9609 0.9549 0.9471 0.9377 0.9269 0.9149 0.9022 0.8889 0.8751 0.8611 0.8469 0.8329 0.8192 0.8064 0.7944 0.7834 0.7734 0.7658 - 0.4713 0.5641 0.6377 0.6963 0.7420 0.7768 0.8028 0.8217 0.8355 0.8455 0.8526 0.8575 0.8605 0.8618 0.8616 0.8600 0.8572 0.8534 0.8489 0.8438 0.8386 0.8332 0.8277 0.8223 0.8169 0.8117 0.8066 0.8017 0.7973 0.7932 0.7894 0.7858 0.7823 0.7790 0.7758 0.7728 0.7699 0.7666 0.7632 0.7617 - 0.4181 0.4884 0.5424 0.5842 0.6162 0.6402 0.6582 0.6719 0.6828 0.6920 0.7003 0.7082 0.7157 0.7230 0.7300 0.7367 0.7430 0.7490 0.7548 0.7603 0.7656 0.7708 0.7756 0.7801 0.7841 0.7876 0.7906 0.7930 0.7950 0.7964 0.7971 0.7971 0.7962 0.7944 0.7918 0.7882 0.7834 0.7767 0.7682 0.7604 - 0.3111 0.3852 0.4468 0.4989 0.5427 0.5795 0.6105 0.6371 0.6604 0.6812 0.7002 0.7177 0.7338 0.7486 0.7620 0.7741 0.7848 0.7943 0.8026 0.8099 0.8163 0.8219 0.8267 0.8307 0.8340 0.8365 0.8384 0.8397 0.8404 0.8407 0.8403 0.8391 0.8370 0.8339 0.8295 0.8235 0.8148 0.8022 0.7840 0.7615 - 0.3770 0.4547 0.5176 0.5687 0.6096 0.6420 0.6674 0.6874 0.7035 0.7167 0.7279 0.7376 0.7461 0.7536 0.7600 0.7656 0.7703 0.7744 0.7781 0.7814 0.7846 0.7877 0.7906 0.7936 0.7965 0.7995 0.8027 0.8061 0.8099 0.8140 0.8184 0.8230 0.8276 0.8319 0.8354 0.8371 0.8350 0.8256 0.8039 0.7648 - 0.3584 0.4204 0.4688 0.5072 0.5375 0.5613 0.5800 0.5952 0.6080 0.6192 0.6296 0.6394 0.6486 0.6573 0.6655 0.6731 0.6800 0.6863 0.6920 0.6973 0.7022 0.7067 0.7108 0.7146 0.7181 0.7216 0.7251 0.7290 0.7337 0.7394 0.7464 0.7551 0.7659 0.7789 0.7942 0.8107 0.8256 0.8329 0.8208 0.7698 - 0.2828 0.3517 0.4096 0.4589 0.5007 0.5360 0.5659 0.5916 0.6139 0.6338 0.6518 0.6681 0.6830 0.6964 0.7083 0.7187 0.7276 0.7350 0.7410 0.7458 0.7494 0.7516 0.7526 0.7523 0.7506 0.7476 0.7435 0.7386 0.7331 0.7277 0.7231 0.7203 0.7210 0.7268 0.7398 0.7613 0.7900 0.8193 0.8296 0.7758 - 0.3639 0.4427 0.5068 0.5592 0.6016 0.6355 0.6626 0.6843 0.7023 0.7176 0.7310 0.7431 0.7541 0.7642 0.7734 0.7818 0.7893 0.7960 0.8021 0.8076 0.8124 0.8166 0.8198 0.8219 0.8225 0.8213 0.8180 0.8120 0.8031 0.7911 0.7761 0.7586 0.7406 0.7251 0.7172 0.7229 0.7475 0.7901 0.8281 0.7825 - 0.3897 0.4588 0.5131 0.5564 0.5910 0.6184 0.6404 0.6584 0.6737 0.6872 0.6996 0.7111 0.7218 0.7318 0.7410 0.7494 0.7569 0.7638 0.7702 0.7763 0.7824 0.7886 0.7952 0.8021 0.8094 0.8169 0.8242 0.8305 0.8348 0.8354 0.8306 0.8184 0.7979 0.7703 0.7404 0.7183 0.7191 0.7564 0.8172 0.7893 - 0.3626 0.4459 0.5153 0.5740 0.6232 0.6641 0.6981 0.7265 0.7504 0.7708 0.7883 0.8033 0.8159 0.8261 0.8338 0.8390 0.8417 0.8420 0.8400 0.8361 0.8306 0.8240 0.8168 0.8098 0.8037 0.7997 0.7987 0.8016 0.8084 0.8183 0.8290 0.8362 0.8347 0.8189 0.7870 0.7456 0.7151 0.7288 0.8000 0.7958 - 0.5002 0.6064 0.6916 0.7605 0.8151 0.8579 0.8911 0.9171 0.9377 0.9545 0.9686 0.9806 0.9907 0.9990 1.0053 1.0094 1.0112 1.0104 1.0068 1.0002 0.9903 0.9766 0.9590 0.9375 0.9126 0.8854 0.8578 0.8328 0.8137 0.8036 0.8043 0.8148 0.8291 0.8367 0.8244 0.7853 0.7328 0.7136 0.7800 0.8018 - 0.6204 0.7237 0.8024 0.8633 0.9099 0.9453 0.9722 0.9929 1.0095 1.0233 1.0352 1.0456 1.0547 1.0625 1.0690 1.0741 1.0781 1.0809 1.0828 1.0836 1.0831 1.0804 1.0743 1.0633 1.0456 1.0197 0.9853 0.9434 0.8976 0.8539 0.8202 0.8040 0.8078 0.8249 0.8363 0.8176 0.7614 0.7116 0.7607 0.8070 - 0.6539 0.7728 0.8671 0.9432 1.0038 1.0514 1.0881 1.1165 1.1383 1.1552 1.1681 1.1775 1.1836 1.1863 1.1856 1.1816 1.1746 1.1651 1.1540 1.1425 1.1316 1.1224 1.1153 1.1098 1.1041 1.0952 1.0787 1.0503 1.0074 0.9514 0.8899 0.8365 0.8064 0.8072 0.8275 0.8333 0.7898 0.7197 0.7441 0.8113 - 0.7847 0.9281 1.0375 1.1205 1.1817 1.2252 1.2554 1.2763 1.2913 1.3027 1.3122 1.3205 1.3277 1.3333 1.3366 1.3365 1.3321 1.3222 1.3063 1.2842 1.2566 1.2253 1.1934 1.1642 1.1411 1.1251 1.1143 1.1024 1.0802 1.0393 0.9770 0.9023 0.8365 0.8041 0.8128 0.8340 0.8113 0.7331 0.7314 0.8147 - 0.8735 0.9970 1.0822 1.1414 1.1819 1.2095 1.2287 1.2429 1.2542 1.2641 1.2734 1.2827 1.2926 1.3034 1.3158 1.3297 1.3447 1.3592 1.3705 1.3750 1.3688 1.3491 1.3153 1.2707 1.2218 1.1773 1.1444 1.1245 1.1111 1.0896 1.0450 0.9720 0.8857 0.8195 0.8034 0.8268 0.8241 0.7476 0.7225 0.8174 - 0.8192 0.9417 1.0409 1.1270 1.2027 1.2683 1.3230 1.3661 1.3973 1.4166 1.4243 1.4214 1.4091 1.3899 1.3673 1.3456 1.3301 1.3250 1.3320 1.3491 1.3700 1.3852 1.3846 1.3613 1.3158 1.2564 1.1976 1.1530 1.1276 1.1118 1.0844 1.0254 0.9354 0.8457 0.8024 0.8180 0.8300 0.7603 0.7169 0.8194 - 0.8452 1.0350 1.2079 1.3627 1.4930 1.5945 1.6669 1.7138 1.7413 1.7552 1.7589 1.7529 1.7342 1.6994 1.6464 1.5775 1.5004 1.4271 1.3708 1.3412 1.3402 1.3596 1.3834 1.3925 1.3731 1.3235 1.2558 1.1907 1.1458 1.1230 1.1035 1.0584 0.9736 0.8719 0.8070 0.8113 0.8317 0.7697 0.7136 0.8207 - 0.9793 1.2255 1.4327 1.5901 1.6893 1.7316 1.7297 1.7042 1.6774 1.6676 1.6834 1.7218 1.7691 1.8053 1.8111 1.7750 1.6977 1.5933 1.4853 1.3985 1.3504 1.3437 1.3649 1.3895 1.3923 1.3594 1.2954 1.2215 1.1626 1.1305 1.1118 1.0751 0.9964 0.8901 0.8122 0.8075 0.8318 0.7754 0.7120 0.8214 - 1.0468 1.3036 1.5046 1.6363 1.6916 1.6777 1.6163 1.5380 1.4749 1.4518 1.4799 1.5537 1.6529 1.7479 1.8088 1.8148 1.7611 1.6609 1.5414 1.4343 1.3650 1.3430 1.3581 1.3852 1.3953 1.3695 1.3087 1.2330 1.1694 1.1334 1.1143 1.0801 1.0038 0.8966 0.8144 0.8063 0.8316 0.7773 0.7116 0.8217 - 7.0231 8.6526 9.9203 10.5747 10.5395 9.9285 8.9793 7.9608 7.0924 6.4935 6.1729 6.0500 5.9985 5.8954 5.6625 5.2877 4.8210 4.3490 3.9569 3.6946 3.5572 3.4902 3.4154 3.2677 3.0266 2.7271 2.4408 2.2364 2.1367 2.1002 2.0434 1.8999 1.6792 1.4725 1.3740 1.3626 1.2844 1.0696 0.9705 0.8842 - 7.1795 8.8491 9.9925 10.4631 10.2683 9.5693 8.6139 7.6539 6.8770 6.3700 6.1174 6.0277 5.9765 5.8524 5.5930 5.1998 4.7306 4.2720 3.9032 3.6645 3.5432 3.4808 3.4008 3.2437 2.9959 2.6967 2.4180 2.2243 2.1326 2.0976 2.0366 1.8883 1.6672 1.4656 1.3729 1.3625 1.2811 1.0664 0.9710 0.8835 - 7.8242 9.1768 9.8055 9.7828 9.2634 8.4656 7.6152 6.8906 6.3887 6.1175 6.0127 5.9707 5.8868 5.6890 5.3577 4.9273 4.4692 4.0628 3.7656 3.5917 3.5084 3.4507 3.3500 3.1652 2.9013 2.6083 2.3552 2.1931 2.1224 2.0890 2.0145 1.8526 1.6322 1.4465 1.3704 1.3616 1.2707 1.0571 0.9725 0.8812 - 7.8766 8.4459 8.4391 8.0597 7.4972 6.9201 6.4497 6.1431 5.9931 5.9433 5.9131 5.8251 5.6286 5.3134 4.9105 4.4800 4.0902 3.7933 3.6083 3.5145 3.4607 3.3850 3.2409 3.0168 2.7420 2.4738 2.2695 2.1556 2.1099 2.0702 1.9712 1.7911 1.5776 1.4200 1.3683 1.3583 1.2520 1.0425 0.9752 0.8774 - 6.0115 6.2214 6.1818 6.0477 5.9137 5.8305 5.8076 5.8213 5.8275 5.7787 5.6390 5.3953 5.0622 4.6783 4.2958 3.9656 3.7220 3.5723 3.4947 3.4456 3.3750 3.2445 3.0429 2.7909 2.5338 2.3222 2.1877 2.1255 2.0930 2.0309 1.8980 1.7039 1.5110 1.3937 1.3678 1.3495 1.2234 1.0241 0.9792 0.8721 - 4.0241 4.5187 4.8850 5.1745 5.3977 5.5482 5.6128 5.5799 5.4459 5.2194 4.9224 4.5883 4.2562 3.9634 3.7365 3.5854 3.4998 3.4520 3.4049 3.3227 3.1831 2.9852 2.7506 2.5171 2.3243 2.1972 2.1337 2.1026 2.0562 1.9542 1.7893 1.5983 1.4450 1.3754 1.3680 1.3304 1.1842 1.0046 0.9845 0.8655 - 3.6808 4.2965 4.7226 4.9867 5.1019 5.0842 4.9568 4.7491 4.4940 4.2254 3.9741 3.7637 3.6079 3.5079 3.4523 3.4197 3.3832 3.3175 3.2052 3.0426 2.8415 2.6266 2.4286 2.2745 2.1770 2.1285 2.1020 2.0600 1.9713 1.8274 1.6518 1.4925 1.3954 1.3689 1.3631 1.2955 1.1356 0.9872 0.9906 0.8577 - 3.4340 3.8145 4.0134 4.0785 4.0446 3.9453 3.8129 3.6754 3.5544 3.4627 3.4040 3.3732 3.3580 3.3419 3.3070 3.2391 3.1300 2.9813 2.8038 2.6160 2.4402 2.2964 2.1965 2.1399 2.1124 2.0890 2.0426 1.9534 1.8197 1.6610 1.5133 1.4126 1.3728 1.3688 1.3423 1.2411 1.0819 0.9756 0.9962 0.8488 - 2.4071 2.6980 2.8850 3.0060 3.0834 3.1339 3.1694 3.1965 3.2169 3.2277 3.2232 3.1963 3.1410 3.0540 2.9368 2.7957 2.6419 2.4897 2.3535 2.2450 2.1701 2.1267 2.1047 2.0873 2.0555 1.9935 1.8947 1.7652 1.6245 1.4994 1.4139 1.3765 1.3708 1.3576 1.2943 1.1691 1.0314 0.9728 0.9997 0.8392 - 1.9023 2.2488 2.5111 2.7082 2.8486 2.9385 2.9836 2.9894 2.9609 2.9030 2.8209 2.7203 2.6082 2.4925 2.3816 2.2833 2.2040 2.1470 2.1115 2.0925 2.0809 2.0653 2.0340 1.9780 1.8939 1.7859 1.6656 1.5503 1.4577 1.3998 1.3766 1.3730 1.3615 1.3131 1.2155 1.0902 0.9940 0.9791 0.9983 0.8293 - 1.8451 2.1187 2.3031 2.4177 2.4741 2.4837 2.4580 2.4084 2.3453 2.2778 2.2132 2.1567 2.1121 2.0807 2.0619 2.0531 2.0498 2.0462 2.0357 2.0119 1.9701 1.9079 1.8267 1.7316 1.6317 1.5378 1.4609 1.4086 1.3824 1.3756 1.3735 1.3570 1.3094 1.2253 1.1185 1.0228 0.9775 0.9913 0.9896 0.8193 - 1.3742 1.5662 1.6969 1.7845 1.8401 1.8733 1.8925 1.9047 1.9151 1.9264 1.9396 1.9536 1.9661 1.9736 1.9728 1.9602 1.9334 1.8915 1.8351 1.7667 1.6904 1.6119 1.5375 1.4734 1.4244 1.3930 1.3783 1.3749 1.3741 1.3648 1.3362 1.2819 1.2034 1.1130 1.0323 0.9851 0.9825 1.0020 0.9716 0.8099 - 1.0300 1.2347 1.3956 1.5235 1.6232 1.6992 1.7551 1.7943 1.8192 1.8314 1.8317 1.8205 1.7981 1.7649 1.7223 1.6721 1.6173 1.5612 1.5075 1.4599 1.4213 1.3935 1.3769 1.3699 1.3695 1.3709 1.3683 1.3558 1.3285 1.2838 1.2228 1.1512 1.0793 1.0204 0.9867 0.9829 0.9985 1.0018 0.9437 0.8015 - 1.0303 1.2082 1.3401 1.4354 1.4992 1.5365 1.5524 1.5517 1.5391 1.5183 1.4925 1.4644 1.4359 1.4091 1.3853 1.3660 1.3521 1.3439 1.3414 1.3435 1.3485 1.3539 1.3568 1.3539 1.3424 1.3202 1.2865 1.2419 1.1892 1.1325 1.0776 1.0311 0.9990 0.9850 0.9882 1.0008 1.0067 0.9827 0.9079 0.7945 - 0.8052 0.9309 1.0219 1.0877 1.1335 1.1642 1.1843 1.1979 1.2084 1.2182 1.2289 1.2410 1.2546 1.2693 1.2840 1.2976 1.3088 1.3165 1.3194 1.3163 1.3065 1.2893 1.2646 1.2331 1.1958 1.1549 1.1129 1.0730 1.0382 1.0114 0.9945 0.9881 0.9910 0.9996 1.0079 1.0077 0.9889 0.9430 0.8685 0.7895 - 0.5892 0.7178 0.8226 0.9093 0.9804 1.0384 1.0855 1.1239 1.1553 1.1809 1.2013 1.2167 1.2270 1.2317 1.2308 1.2240 1.2118 1.1945 1.1729 1.1482 1.1216 1.0944 1.0678 1.0434 1.0223 1.0057 0.9945 0.9888 0.9887 0.9930 1.0001 1.0075 1.0122 1.0108 1.0001 0.9771 0.9401 0.8897 0.8318 0.7866 - 0.6210 0.7404 0.8341 0.9071 0.9619 1.0011 1.0274 1.0433 1.0514 1.0534 1.0512 1.0456 1.0377 1.0281 1.0175 1.0066 0.9959 0.9863 0.9785 0.9729 0.9699 0.9698 0.9723 0.9771 0.9837 0.9914 0.9991 1.0061 1.0111 1.0130 1.0106 1.0029 0.9889 0.9685 0.9419 0.9099 0.8741 0.8372 0.8041 0.7861 - 0.5145 0.6009 0.6666 0.7169 0.7547 0.7825 0.8031 0.8187 0.8314 0.8427 0.8536 0.8649 0.8767 0.8892 0.9021 0.9153 0.9285 0.9415 0.9540 0.9659 0.9766 0.9858 0.9931 0.9979 0.9999 0.9986 0.9940 0.9861 0.9749 0.9607 0.9438 0.9245 0.9033 0.8811 0.8587 0.8372 0.8178 0.8015 0.7900 0.7880 - 0.3769 0.4657 0.5403 0.6040 0.6580 0.7039 0.7429 0.7764 0.8058 0.8318 0.8551 0.8758 0.8942 0.9099 0.9229 0.9330 0.9401 0.9445 0.9461 0.9452 0.9421 0.9369 0.9299 0.9211 0.9110 0.8996 0.8875 0.8751 0.8626 0.8506 0.8392 0.8287 0.8191 0.8107 0.8037 0.7983 0.7944 0.7919 0.7909 0.7920 - 0.4261 0.5146 0.5865 0.6449 0.6914 0.7276 0.7551 0.7756 0.7908 0.8019 0.8100 0.8156 0.8193 0.8212 0.8217 0.8209 0.8191 0.8166 0.8137 0.8107 0.8078 0.8052 0.8030 0.8012 0.7998 0.7988 0.7983 0.7983 0.7988 0.7998 0.8011 0.8025 0.8040 0.8052 0.8063 0.8070 0.8072 0.8064 0.8039 0.7978 - 0.3810 0.4473 0.4992 0.5405 0.5730 0.5983 0.6182 0.6344 0.6480 0.6603 0.6718 0.6831 0.6943 0.7054 0.7163 0.7271 0.7375 0.7477 0.7576 0.7673 0.7766 0.7857 0.7942 0.8023 0.8096 0.8162 0.8221 0.8273 0.8318 0.8355 0.8385 0.8406 0.8418 0.8421 0.8415 0.8399 0.8369 0.8318 0.8230 0.8049 - 0.2857 0.3555 0.4151 0.4669 0.5118 0.5507 0.5844 0.6140 0.6405 0.6645 0.6866 0.7070 0.7258 0.7431 0.7587 0.7727 0.7851 0.7960 0.8055 0.8138 0.8210 0.8272 0.8326 0.8371 0.8408 0.8438 0.8462 0.8483 0.8500 0.8515 0.8528 0.8539 0.8547 0.8554 0.8560 0.8560 0.8548 0.8508 0.8407 0.8128 - 0.3411 0.4159 0.4779 0.5295 0.5717 0.6057 0.6330 0.6548 0.6725 0.6872 0.6996 0.7102 0.7195 0.7275 0.7345 0.7404 0.7455 0.7499 0.7538 0.7573 0.7606 0.7637 0.7667 0.7696 0.7725 0.7754 0.7784 0.7817 0.7854 0.7896 0.7944 0.7999 0.8064 0.8139 0.8227 0.8327 0.8428 0.8507 0.8507 0.8208 - 0.3313 0.3903 0.4372 0.4751 0.5057 0.5303 0.5503 0.5671 0.5817 0.5949 0.6074 0.6193 0.6309 0.6419 0.6525 0.6625 0.6718 0.6805 0.6884 0.6958 0.7024 0.7085 0.7138 0.7184 0.7223 0.7256 0.7283 0.7306 0.7328 0.7351 0.7379 0.7416 0.7470 0.7550 0.7667 0.7832 0.8047 0.8295 0.8496 0.8284 - 0.2611 0.3254 0.3808 0.4294 0.4718 0.5088 0.5412 0.5698 0.5953 0.6186 0.6399 0.6597 0.6779 0.6946 0.7097 0.7233 0.7354 0.7460 0.7552 0.7632 0.7699 0.7753 0.7795 0.7823 0.7837 0.7835 0.7817 0.7784 0.7735 0.7672 0.7596 0.7513 0.7433 0.7373 0.7360 0.7427 0.7616 0.7951 0.8373 0.8352 - 0.3258 0.4017 0.4652 0.5186 0.5628 0.5991 0.6287 0.6530 0.6735 0.6911 0.7066 0.7206 0.7334 0.7451 0.7559 0.7658 0.7748 0.7832 0.7910 0.7984 0.8053 0.8120 0.8182 0.8238 0.8287 0.8326 0.8353 0.8362 0.8349 0.8307 0.8228 0.8107 0.7941 0.7740 0.7532 0.7373 0.7358 0.7607 0.8169 0.8409 - 0.3591 0.4251 0.4779 0.5209 0.5559 0.5845 0.6080 0.6280 0.6454 0.6613 0.6761 0.6901 0.7034 0.7159 0.7274 0.7378 0.7472 0.7555 0.7629 0.7696 0.7757 0.7815 0.7873 0.7931 0.7993 0.8060 0.8135 0.8217 0.8302 0.8383 0.8443 0.8460 0.8406 0.8253 0.7993 0.7661 0.7376 0.7377 0.7930 0.8453 - 0.3287 0.4049 0.4705 0.5278 0.5778 0.6211 0.6586 0.6913 0.7201 0.7457 0.7687 0.7892 0.8073 0.8230 0.8362 0.8467 0.8546 0.8598 0.8623 0.8624 0.8602 0.8558 0.8494 0.8415 0.8326 0.8236 0.8155 0.8100 0.8082 0.8114 0.8197 0.8316 0.8432 0.8480 0.8379 0.8074 0.7620 0.7311 0.7702 0.8484 - 0.4329 0.5339 0.6183 0.6892 0.7477 0.7954 0.8340 0.8655 0.8915 0.9136 0.9327 0.9496 0.9645 0.9775 0.9887 0.9979 1.0051 1.0103 1.0132 1.0138 1.0117 1.0064 0.9975 0.9843 0.9664 0.9439 0.9173 0.8883 0.8595 0.8346 0.8179 0.8129 0.8207 0.8364 0.8481 0.8381 0.7951 0.7398 0.7516 0.8502 - 0.5519 0.6513 0.7293 0.7914 0.8406 0.8794 0.9104 0.9356 0.9569 0.9754 0.9920 1.0071 1.0206 1.0326 1.0429 1.0516 1.0586 1.0643 1.0689 1.0726 1.0755 1.0774 1.0779 1.0759 1.0699 1.0580 1.0383 1.0094 0.9710 0.9256 0.8787 0.8392 0.8168 0.8174 0.8354 0.8481 0.8238 0.7581 0.7389 0.8511 - 0.5799 0.6878 0.7764 0.8510 0.9134 0.9654 1.0084 1.0441 1.0740 1.0991 1.1203 1.1379 1.1521 1.1629 1.1700 1.1734 1.1731 1.1694 1.1625 1.1533 1.1427 1.1316 1.1214 1.1130 1.1067 1.1019 1.0960 1.0848 1.0629 1.0258 0.9727 0.9100 0.8522 0.8181 0.8191 0.8416 0.8412 0.7796 0.7321 0.8511 - 0.6715 0.8072 0.9169 1.0052 1.0742 1.1267 1.1657 1.1947 1.2167 1.2343 1.2491 1.2624 1.2746 1.2858 1.2956 1.3035 1.3087 1.3103 1.3070 1.2978 1.2820 1.2594 1.2311 1.1998 1.1690 1.1430 1.1245 1.1132 1.1038 1.0866 1.0505 0.9903 0.9139 0.8453 0.8141 0.8287 0.8471 0.7995 0.7301 0.8506 - 0.7762 0.9024 0.9929 1.0572 1.1019 1.1326 1.1544 1.1711 1.1854 1.1986 1.2115 1.2241 1.2364 1.2486 1.2610 1.2742 1.2888 1.3050 1.3219 1.3377 1.3487 1.3509 1.3402 1.3144 1.2751 1.2279 1.1819 1.1461 1.1245 1.1120 1.0936 1.0511 0.9770 0.8878 0.8237 0.8180 0.8455 0.8150 0.7313 0.8498 - 0.7578 0.8646 0.9467 1.0167 1.0806 1.1408 1.1975 1.2495 1.2949 1.3322 1.3599 1.3773 1.3841 1.3806 1.3681 1.3492 1.3281 1.3099 1.2999 1.3018 1.3157 1.3374 1.3579 1.3662 1.3530 1.3156 1.2603 1.2013 1.1546 1.1278 1.1128 1.0863 1.0253 0.9309 0.8422 0.8127 0.8405 0.8258 0.7340 0.8489 - 0.7262 0.8673 1.0027 1.1368 1.2655 1.3817 1.4790 1.5544 1.6085 1.6448 1.6682 1.6823 1.6881 1.6832 1.6637 1.6258 1.5692 1.4990 1.4257 1.3632 1.3241 1.3142 1.3296 1.3558 1.3729 1.3636 1.3220 1.2578 1.1923 1.1460 1.1230 1.1037 1.0557 0.9645 0.8616 0.8119 0.8354 0.8325 0.7368 0.8482 - 0.7671 0.9619 1.1514 1.3267 1.4724 1.5753 1.6303 1.6427 1.6268 1.6021 1.5875 1.5957 1.6290 1.6786 1.7268 1.7529 1.7407 1.6849 1.5942 1.4891 1.3959 1.3366 1.3199 1.3373 1.3655 1.3771 1.3533 1.2948 1.2221 1.1623 1.1300 1.1115 1.0714 0.9849 0.8755 0.8130 0.8319 0.8359 0.7389 0.8477 - 0.7997 1.0149 1.2190 1.3968 1.5286 1.6002 1.6096 1.5684 1.5000 1.4329 1.3942 1.4012 1.4568 1.5479 1.6489 1.7291 1.7626 1.7366 1.6569 1.5460 1.4358 1.3559 1.3226 1.3317 1.3605 1.3784 1.3618 1.3070 1.2330 1.1689 1.1327 1.1137 1.0762 0.9916 0.8805 0.8137 0.8307 0.8370 0.7397 0.8475 - 6.8793 8.2219 8.8609 8.8376 8.3216 7.5590 6.7920 6.1926 5.8314 5.6817 5.6505 5.6227 5.5039 5.2500 4.8762 4.4450 4.0384 3.7243 3.5314 3.4395 3.3906 3.3155 3.1652 2.9331 2.6579 2.4040 2.2265 2.1388 2.1015 2.0445 1.9136 1.7152 1.5210 1.4126 1.3937 1.3580 1.2010 1.0191 1.0157 0.8369 - 7.0382 8.2252 8.6963 8.5523 7.9893 7.2499 6.5528 6.0394 5.7529 5.6499 5.6331 5.5941 5.4512 5.1744 4.7892 4.3622 3.9726 3.6815 3.5089 3.4285 3.3805 3.2984 3.1390 2.9015 2.6281 2.3825 2.2154 2.1351 2.0991 2.0382 1.9025 1.7030 1.5128 1.4101 1.3934 1.3553 1.1965 1.0177 1.0161 0.8364 - 7.1705 7.8765 7.9527 7.5991 7.0305 6.4456 5.9852 5.7096 5.6007 5.5862 5.5723 5.4785 5.2622 4.9293 4.5279 4.1287 3.7981 3.5745 3.4553 3.3995 3.3462 3.2400 3.0548 2.8060 2.5426 2.3236 2.1867 2.1256 2.0907 2.0170 1.8679 1.6671 1.4900 1.4036 1.3923 1.3467 1.1832 1.0138 1.0173 0.8349 - 6.3351 6.5546 6.4152 6.1186 5.8121 5.5889 5.4816 5.4687 5.4925 5.4846 5.3889 5.1796 4.8673 4.4948 4.1221 3.8064 3.5837 3.4569 3.3964 3.3512 3.2696 3.1194 2.9015 2.6496 2.4155 2.2447 2.1523 2.1127 2.0711 1.9744 1.8075 1.6108 1.4580 1.3964 1.3898 1.3304 1.1611 1.0084 1.0189 0.8325 - 4.5127 4.7499 4.8656 4.9584 5.0652 5.1842 5.2879 5.3383 5.3014 5.1596 4.9180 4.6048 4.2641 3.9451 3.6883 3.5143 3.4179 3.3703 3.3287 3.2515 3.1129 2.9132 2.6790 2.4533 2.2774 2.1714 2.1236 2.0928 2.0289 1.9010 1.7207 1.5414 1.4254 1.3918 1.3835 1.3039 1.1313 1.0032 1.0205 0.8294 - 3.3478 3.8906 4.3218 4.6600 4.8964 5.0188 5.0215 4.9107 4.7063 4.4398 4.1501 3.8762 3.6499 3.4894 3.3946 3.3481 3.3195 3.2745 3.1852 3.0394 2.8449 2.6279 2.4242 2.2660 2.1687 2.1231 2.0970 2.0488 1.9473 1.7912 1.6149 1.4722 1.4016 1.3902 1.3686 1.2644 1.0961 1.0000 1.0209 0.8257 - 3.2984 3.8312 4.1806 4.3714 4.4210 4.3540 4.2028 4.0040 3.7936 3.6024 3.4521 3.3518 3.2982 3.2760 3.2622 3.2317 3.1636 3.0473 2.8859 2.6960 2.5034 2.3359 2.2139 2.1429 2.1102 2.0881 2.0438 1.9537 1.8156 1.6535 1.5092 1.4199 1.3917 1.3861 1.3379 1.2115 1.0596 1.0007 1.0191 0.8217 - 2.8984 3.2035 3.3598 3.4126 3.3955 3.3393 3.2710 3.2112 3.1716 3.1549 3.1555 3.1609 3.1558 3.1248 3.0573 2.9495 2.8067 2.6428 2.4769 2.3293 2.2159 2.1434 2.1063 2.0881 2.0651 2.0145 1.9231 1.7941 1.6485 1.5178 1.4307 1.3956 1.3900 1.3673 1.2853 1.1484 1.0281 1.0059 1.0132 0.8177 - 2.0070 2.2813 2.4777 2.6255 2.7395 2.8293 2.9001 2.9532 2.9864 2.9957 2.9767 2.9264 2.8448 2.7359 2.6082 2.4738 2.3463 2.2380 2.1577 2.1075 2.0822 2.0697 2.0537 2.0179 1.9511 1.8512 1.7282 1.6015 1.4944 1.4250 1.3964 1.3914 1.3769 1.3196 1.2105 1.0844 1.0079 1.0145 1.0018 0.8139 - 1.6963 2.0195 2.2685 2.4567 2.5888 2.6691 2.7028 2.6957 2.6548 2.5876 2.5022 2.4073 2.3117 2.2237 2.1504 2.0961 2.0619 2.0451 2.0387 2.0331 2.0176 1.9827 1.9224 1.8368 1.7328 1.6233 1.5241 1.4496 1.4071 1.3929 1.3907 1.3764 1.3278 1.2376 1.1250 1.0331 1.0031 1.0228 0.9835 0.8109 - 1.6211 1.8605 2.0214 2.1207 2.1693 2.1780 2.1584 2.1218 2.0781 2.0357 2.0007 1.9765 1.9643 1.9627 1.9680 1.9750 1.9773 1.9687 1.9439 1.8998 1.8363 1.7568 1.6680 1.5793 1.5009 1.4412 1.4048 1.3900 1.3882 1.3851 1.3643 1.3141 1.2332 1.1361 1.0508 1.0067 1.0117 1.0249 0.9579 0.8088 - 1.1800 1.3545 1.4795 1.5704 1.6363 1.6848 1.7226 1.7545 1.7838 1.8116 1.8373 1.8589 1.8732 1.8769 1.8673 1.8424 1.8021 1.7480 1.6838 1.6145 1.5462 1.4850 1.4361 1.4026 1.3850 1.3800 1.3812 1.3796 1.3655 1.3314 1.2744 1.1990 1.1178 1.0491 1.0104 1.0078 1.0240 1.0140 0.9262 0.8081 - 0.9219 1.1143 1.2700 1.3967 1.4977 1.5755 1.6328 1.6719 1.6949 1.7034 1.6987 1.6819 1.6543 1.6178 1.5749 1.5285 1.4824 1.4400 1.4048 1.3791 1.3638 1.3583 1.3601 1.3650 1.3679 1.3631 1.3457 1.3129 1.2644 1.2037 1.1380 1.0771 1.0315 1.0088 1.0095 1.0228 1.0250 0.9861 0.8913 0.8089 - 0.9230 1.0852 1.2066 1.2948 1.3542 1.3892 1.4045 1.4050 1.3953 1.3794 1.3606 1.3418 1.3250 1.3119 1.3034 1.3002 1.3021 1.3084 1.3176 1.3275 1.3355 1.3386 1.3340 1.3194 1.2936 1.2569 1.2114 1.1608 1.1101 1.0651 1.0312 1.0119 1.0080 1.0156 1.0261 1.0265 1.0018 0.9425 0.8578 0.8113 - 0.7096 0.8243 0.9100 0.9746 1.0227 1.0584 1.0858 1.1082 1.1284 1.1484 1.1690 1.1904 1.2121 1.2331 1.2519 1.2672 1.2774 1.2813 1.2781 1.2672 1.2487 1.2231 1.1917 1.1562 1.1191 1.0833 1.0518 1.0273 1.0116 1.0056 1.0080 1.0162 1.0253 1.0293 1.0218 0.9968 0.9520 0.8912 0.8308 0.8154 - 0.5327 0.6539 0.7554 0.8415 0.9141 0.9746 1.0246 1.0656 1.0990 1.1256 1.1459 1.1601 1.1681 1.1698 1.1654 1.1553 1.1401 1.1210 1.0993 1.0765 1.0541 1.0337 1.0167 1.0040 0.9963 0.9940 0.9966 1.0031 1.0120 1.0208 1.0268 1.0272 1.0192 1.0010 0.9721 0.9336 0.8891 0.8456 0.8149 0.8209 - 0.5634 0.6751 0.7639 0.8339 0.8870 0.9254 0.9514 0.9674 0.9759 0.9788 0.9778 0.9742 0.9691 0.9632 0.9575 0.9526 0.9491 0.9477 0.9488 0.9525 0.9589 0.9675 0.9778 0.9888 0.9996 1.0088 1.0155 1.0183 1.0165 1.0090 0.9957 0.9764 0.9518 0.9232 0.8927 0.8629 0.8368 0.8182 0.8120 0.8276 - 0.4644 0.5444 0.6064 0.6552 0.6932 0.7228 0.7462 0.7657 0.7829 0.7993 0.8158 0.8328 0.8505 0.8687 0.8871 0.9052 0.9226 0.9388 0.9535 0.9661 0.9763 0.9835 0.9875 0.9878 0.9843 0.9770 0.9662 0.9522 0.9357 0.9174 0.8981 0.8787 0.8602 0.8437 0.8302 0.8206 0.8155 0.8154 0.8212 0.8350 - 0.3452 0.4290 0.5010 0.5640 0.6189 0.6666 0.7079 0.7441 0.7760 0.8042 0.8292 0.8511 0.8700 0.8856 0.8978 0.9066 0.9120 0.9142 0.9134 0.9101 0.9047 0.8975 0.8890 0.8794 0.8693 0.8591 0.8493 0.8402 0.8324 0.8261 0.8214 0.8185 0.8173 0.8178 0.8198 0.8232 0.8276 0.8325 0.8378 0.8427 - 0.3893 0.4734 0.5429 0.6002 0.6464 0.6827 0.7106 0.7317 0.7473 0.7589 0.7673 0.7734 0.7775 0.7802 0.7817 0.7823 0.7824 0.7823 0.7823 0.7827 0.7838 0.7856 0.7882 0.7916 0.7957 0.8003 0.8055 0.8112 0.8172 0.8233 0.8295 0.8354 0.8409 0.8456 0.8496 0.8528 0.8549 0.8558 0.8552 0.8499 - 0.3509 0.4133 0.4628 0.5029 0.5350 0.5609 0.5821 0.6000 0.6160 0.6309 0.6455 0.6600 0.6748 0.6896 0.7045 0.7192 0.7337 0.7479 0.7616 0.7749 0.7876 0.7997 0.8110 0.8214 0.8308 0.8390 0.8462 0.8523 0.8575 0.8618 0.8652 0.8677 0.8694 0.8704 0.8708 0.8708 0.8703 0.8691 0.8665 0.8563 - 0.2646 0.3302 0.3874 0.4384 0.4836 0.5236 0.5592 0.5910 0.6199 0.6463 0.6707 0.6932 0.7138 0.7327 0.7495 0.7645 0.7775 0.7887 0.7982 0.8063 0.8130 0.8187 0.8233 0.8270 0.8299 0.8321 0.8338 0.8351 0.8363 0.8375 0.8387 0.8402 0.8420 0.8443 0.8474 0.8514 0.8564 0.8621 0.8672 0.8615 - 0.3112 0.3831 0.4438 0.4951 0.5378 0.5727 0.6009 0.6238 0.6424 0.6579 0.6709 0.6820 0.6916 0.6999 0.7071 0.7133 0.7187 0.7235 0.7277 0.7317 0.7354 0.7390 0.7425 0.7458 0.7491 0.7522 0.7553 0.7584 0.7616 0.7650 0.7688 0.7730 0.7780 0.7843 0.7925 0.8032 0.8172 0.8351 0.8560 0.8650 - 0.3093 0.3655 0.4107 0.4476 0.4779 0.5026 0.5233 0.5411 0.5570 0.5718 0.5861 0.6001 0.6139 0.6275 0.6407 0.6535 0.6656 0.6771 0.6880 0.6981 0.7074 0.7160 0.7237 0.7305 0.7362 0.7409 0.7446 0.7472 0.7489 0.7497 0.7499 0.7496 0.7494 0.7502 0.7532 0.7605 0.7745 0.7986 0.8351 0.8667 - 0.2436 0.3033 0.3558 0.4029 0.4451 0.4829 0.5168 0.5475 0.5755 0.6014 0.6255 0.6480 0.6690 0.6884 0.7062 0.7224 0.7370 0.7501 0.7619 0.7723 0.7816 0.7898 0.7969 0.8027 0.8074 0.8107 0.8125 0.8129 0.8115 0.8082 0.8027 0.7950 0.7849 0.7733 0.7614 0.7524 0.7512 0.7667 0.8094 0.8667 - 0.2935 0.3663 0.4287 0.4822 0.5276 0.5655 0.5969 0.6232 0.6455 0.6647 0.6817 0.6970 0.7110 0.7238 0.7356 0.7464 0.7564 0.7656 0.7744 0.7827 0.7907 0.7985 0.8062 0.8135 0.8206 0.8274 0.8337 0.8394 0.8442 0.8475 0.8485 0.8459 0.8385 0.8250 0.8051 0.7805 0.7574 0.7503 0.7844 0.8651 - 0.3336 0.3970 0.4483 0.4906 0.5255 0.5543 0.5786 0.5997 0.6186 0.6363 0.6531 0.6694 0.6850 0.7000 0.7140 0.7270 0.7388 0.7494 0.7588 0.7670 0.7742 0.7805 0.7859 0.7908 0.7953 0.7998 0.8048 0.8107 0.8181 0.8269 0.8368 0.8466 0.8539 0.8551 0.8458 0.8222 0.7860 0.7528 0.7646 0.8621 - 0.3029 0.3722 0.4330 0.4876 0.5367 0.5807 0.6202 0.6558 0.6883 0.7181 0.7455 0.7708 0.7938 0.8144 0.8326 0.8481 0.8610 0.8713 0.8789 0.8840 0.8864 0.8863 0.8834 0.8779 0.8699 0.8598 0.8483 0.8366 0.8262 0.8192 0.8174 0.8220 0.8329 0.8469 0.8567 0.8513 0.8205 0.7703 0.7525 0.8581 - 0.3767 0.4717 0.5539 0.6252 0.6861 0.7373 0.7801 0.8160 0.8465 0.8728 0.8959 0.9166 0.9352 0.9519 0.9667 0.9797 0.9910 1.0004 1.0082 1.0142 1.0182 1.0199 1.0189 1.0143 1.0055 0.9918 0.9725 0.9480 0.9189 0.8875 0.8575 0.8340 0.8225 0.8262 0.8423 0.8569 0.8464 0.7950 0.7484 0.8535 - 0.4929 0.5892 0.6665 0.7294 0.7802 0.8213 0.8549 0.8831 0.9076 0.9296 0.9499 0.9688 0.9863 1.0022 1.0164 1.0286 1.0390 1.0475 1.0545 1.0603 1.0650 1.0690 1.0722 1.0745 1.0751 1.0729 1.0660 1.0522 1.0291 0.9951 0.9509 0.9014 0.8561 0.8277 0.8258 0.8454 0.8573 0.8193 0.7510 0.8485 - 0.5240 0.6218 0.7035 0.7740 0.8352 0.8883 0.9346 0.9750 1.0106 1.0421 1.0700 1.0945 1.1157 1.1336 1.1479 1.1585 1.1654 1.1684 1.1677 1.1635 1.1561 1.1462 1.1348 1.1233 1.1130 1.1052 1.1000 1.0957 1.0884 1.0720 1.0399 0.9892 0.9248 0.8629 0.8267 0.8309 0.8556 0.8384 0.7582 0.8436 - 0.5807 0.7056 0.8116 0.9015 0.9758 1.0355 1.0824 1.1189 1.1475 1.1705 1.1899 1.2070 1.2226 1.2372 1.2508 1.2634 1.2746 1.2837 1.2899 1.2921 1.2889 1.2790 1.2617 1.2371 1.2072 1.1756 1.1470 1.1256 1.1128 1.1043 1.0901 1.0571 0.9972 0.9183 0.8486 0.8239 0.8473 0.8507 0.7676 0.8390 - 0.6836 0.8124 0.9099 0.9820 1.0331 1.0683 1.0926 1.1107 1.1259 1.1405 1.1554 1.1705 1.1857 1.2002 1.2140 1.2272 1.2404 1.2546 1.2706 1.2884 1.3067 1.3227 1.3321 1.3297 1.3121 1.2787 1.2341 1.1872 1.1485 1.1244 1.1113 1.0938 1.0510 0.9739 0.8830 0.8273 0.8382 0.8571 0.7773 0.8350 - 0.7082 0.8123 0.8871 0.9451 0.9949 1.0424 1.0907 1.1405 1.1903 1.2378 1.2803 1.3153 1.3409 1.3559 1.3597 1.3530 1.3374 1.3168 1.2961 1.2814 1.2779 1.2878 1.3087 1.3327 1.3483 1.3441 1.3144 1.2631 1.2041 1.1550 1.1262 1.1105 1.0826 1.0170 0.9184 0.8378 0.8315 0.8594 0.7857 0.8317 - 0.6723 0.7784 0.8746 0.9733 1.0777 1.1851 1.2893 1.3834 1.4621 1.5233 1.5680 1.5997 1.6217 1.6357 1.6406 1.6324 1.6067 1.5611 1.4983 1.4270 1.3607 1.3138 1.2956 1.3057 1.3322 1.3548 1.3537 1.3189 1.2576 1.1915 1.1435 1.1196 1.0985 1.0448 0.9468 0.8501 0.8277 0.8596 0.7922 0.8292 - 0.6603 0.7964 0.9368 1.0856 1.2343 1.3688 1.4746 1.5422 1.5704 1.5674 1.5485 1.5317 1.5324 1.5575 1.6036 1.6564 1.6960 1.7033 1.6678 1.5925 1.4941 1.3983 1.3302 1.3038 1.3157 1.3449 1.3624 1.3456 1.2915 1.2194 1.1587 1.1258 1.1058 1.0596 0.9644 0.8593 0.8261 0.8592 0.7962 0.8278 - 0.6650 0.8170 0.9763 1.1416 1.2988 1.4286 1.5140 1.5461 1.5280 1.4750 1.4108 1.3622 1.3506 1.3860 1.4629 1.5615 1.6526 1.7072 1.7065 1.6485 1.5500 1.4410 1.3537 1.3101 1.3119 1.3398 1.3625 1.3526 1.3025 1.2295 1.1646 1.1281 1.1079 1.0641 0.9703 0.8627 0.8257 0.8589 0.7975 0.8273 - 6.4784 7.1257 7.1528 6.7799 6.2422 5.7407 5.3973 5.2398 5.2180 5.2395 5.2102 5.0682 4.8010 4.4448 4.0663 3.7360 3.5013 3.3705 3.3114 3.2675 3.1825 3.0250 2.8023 2.5562 2.3422 2.2003 2.1321 2.0978 2.0377 1.9107 1.7263 1.5450 1.4352 1.4087 1.3912 1.2861 1.1100 1.0250 1.0326 0.8283 - 6.4139 6.9276 6.8755 6.4901 5.9946 5.5651 5.2959 5.1941 5.1996 5.2209 5.1734 5.0077 4.7230 4.3622 3.9932 3.6818 3.4684 3.3540 3.3022 3.2562 3.1633 2.9977 2.7713 2.5282 2.3224 2.1899 2.1280 2.0945 2.0309 1.8998 1.7145 1.5367 1.4321 1.4082 1.3890 1.2812 1.1064 1.0251 1.0320 0.8282 - 5.9599 6.1872 6.0262 5.7016 5.3820 5.1692 5.0902 5.1087 5.1524 5.1447 5.0324 4.8017 4.4794 4.1215 3.7923 3.5415 3.3879 3.3141 3.2749 3.2166 3.0988 2.9115 2.6789 2.4488 2.2690 2.1633 2.1172 2.0834 2.0083 1.8658 1.6797 1.5135 1.4242 1.4068 1.3819 1.2666 1.0961 1.0255 1.0302 0.8282 - 4.7815 4.8964 4.8527 4.7954 4.7931 4.8567 4.9536 5.0291 5.0299 4.9226 4.7050 4.4055 4.0743 3.7672 3.5283 3.3767 3.3011 3.2650 3.2210 3.1288 2.9707 2.7593 2.5317 2.3338 2.1991 2.1314 2.1012 2.0591 1.9631 1.8058 1.6244 1.4806 1.4149 1.4047 1.3681 1.2418 1.0805 1.0268 1.0266 0.8281 - 3.4375 3.7793 4.0630 4.3277 4.5638 4.7412 4.8273 4.8012 4.6619 4.4303 4.1452 3.8539 3.6007 3.4151 3.3049 3.2542 3.2293 3.1904 3.1047 2.9587 2.7628 2.5481 2.3544 2.2138 2.1361 2.1031 2.0751 2.0100 1.8865 1.7193 1.5554 1.4463 1.4084 1.3999 1.3445 1.2070 1.0620 1.0295 1.0206 0.8282 - 2.9409 3.4945 3.9242 4.2315 4.4060 4.4463 4.3656 4.1919 3.9638 3.7233 3.5081 3.3448 3.2433 3.1961 3.1803 3.1649 3.1196 3.0243 2.8757 2.6890 2.4926 2.3194 2.1943 2.1242 2.0941 2.0718 2.0215 1.9208 1.7741 1.6141 1.4862 1.4204 1.4056 1.3878 1.3076 1.1638 1.0441 1.0338 1.0114 0.8285 - 2.9540 3.3868 3.6450 3.7585 3.7535 3.6633 3.5252 3.3755 3.2439 3.1494 3.0977 3.0820 3.0849 3.0836 3.0557 2.9854 2.8683 2.7129 2.5389 2.3718 2.2354 2.1438 2.0960 2.0756 2.0553 2.0075 1.9158 1.7840 1.6369 1.5106 1.4339 1.4084 1.4011 1.3602 1.2548 1.1161 1.0307 1.0390 0.9981 0.8294 - 2.4221 2.6684 2.7995 2.8581 2.8742 2.8724 2.8710 2.8802 2.9013 2.9283 2.9498 2.9520 2.9232 2.8564 2.7520 2.6186 2.4718 2.3304 2.2119 2.1279 2.0803 2.0596 2.0479 2.0235 1.9681 1.8746 1.7510 1.6191 1.5068 1.4360 1.4091 1.4041 1.3817 1.3089 1.1882 1.0714 1.0253 1.0431 0.9801 0.8308 - 1.6986 1.9652 2.1728 2.3422 2.4812 2.5928 2.6771 2.7321 2.7554 2.7450 2.7008 2.6259 2.5271 2.4145 2.3006 2.1979 2.1167 2.0624 2.0340 2.0238 2.0184 2.0027 1.9631 1.8925 1.7933 1.6778 1.5655 1.4764 1.4234 1.4048 1.4023 1.3866 1.3316 1.2325 1.1176 1.0386 1.0287 1.0428 0.9571 0.8330 - 1.5346 1.8325 2.0616 2.2315 2.3453 2.4073 2.4234 2.4017 2.3514 2.2826 2.2056 2.1299 2.0639 2.0134 1.9814 1.9670 1.9655 1.9690 1.9676 1.9518 1.9141 1.8515 1.7671 1.6695 1.5722 1.4893 1.4319 1.4034 1.3971 1.3963 1.3797 1.3303 1.2454 1.1432 1.0590 1.0249 1.0377 1.0339 0.9302 0.8361 - 1.4264 1.6331 1.7707 1.8550 1.8968 1.9070 1.8970 1.8773 1.8567 1.8417 1.8360 1.8405 1.8532 1.8700 1.8850 1.8919 1.8850 1.8599 1.8151 1.7526 1.6772 1.5968 1.5208 1.4579 1.4146 1.3923 1.3869 1.3885 1.3835 1.3586 1.3062 1.2287 1.1408 1.0665 1.0280 1.0298 1.0437 1.0126 0.9012 0.8402 - 1.0199 1.1804 1.3014 1.3960 1.4714 1.5332 1.5860 1.6325 1.6742 1.7106 1.7402 1.7603 1.7681 1.7615 1.7393 1.7020 1.6522 1.5942 1.5334 1.4762 1.4282 1.3935 1.3739 1.3678 1.3705 1.3745 1.3713 1.3528 1.3141 1.2557 1.1843 1.1127 1.0564 1.0277 1.0279 1.0416 1.0361 0.9779 0.8733 0.8451 - 0.8352 1.0165 1.1657 1.2887 1.3871 1.4625 1.5164 1.5511 1.5685 1.5707 1.5598 1.5382 1.5082 1.4729 1.4356 1.3998 1.3688 1.3455 1.3315 1.3270 1.3304 1.3386 1.3469 1.3501 1.3430 1.3219 1.2854 1.2355 1.1772 1.1185 1.0687 1.0358 1.0238 1.0296 1.0415 1.0404 1.0065 0.9334 0.8503 0.8507 - 0.8323 0.9792 1.0892 1.1690 1.2226 1.2541 1.2684 1.2702 1.2642 1.2546 1.2446 1.2370 1.2333 1.2345 1.2408 1.2516 1.2654 1.2804 1.2940 1.3036 1.3063 1.3000 1.2831 1.2553 1.2181 1.1742 1.1281 1.0851 1.0504 1.0281 1.0198 1.0239 1.0347 1.0430 1.0378 1.0096 0.9559 0.8874 0.8357 0.8567 - 0.6293 0.7344 0.8149 0.8782 0.9281 0.9684 1.0022 1.0324 1.0610 1.0893 1.1175 1.1454 1.1717 1.1950 1.2137 1.2263 1.2316 1.2287 1.2177 1.1991 1.1740 1.1443 1.1123 1.0808 1.0525 1.0301 1.0155 1.0097 1.0122 1.0207 1.0314 1.0392 1.0385 1.0244 0.9943 0.9495 0.8971 0.8510 0.8317 0.8628 - 0.4860 0.6006 0.6986 0.7834 0.8560 0.9172 0.9681 1.0097 1.0428 1.0683 1.0865 1.0978 1.1024 1.1006 1.0931 1.0808 1.0649 1.0470 1.0288 1.0121 0.9982 0.9886 0.9839 0.9843 0.9895 0.9984 1.0094 1.0203 1.0286 1.0317 1.0271 1.0133 0.9897 0.9576 0.9200 0.8821 0.8506 0.8334 0.8382 0.8686 - 0.5154 0.6196 0.7030 0.7690 0.8193 0.8557 0.8804 0.8959 0.9044 0.9080 0.9086 0.9076 0.9062 0.9053 0.9057 0.9080 0.9126 0.9198 0.9296 0.9415 0.9552 0.9695 0.9835 0.9957 1.0051 1.0102 1.0103 1.0046 0.9930 0.9757 0.9535 0.9280 0.9011 0.8754 0.8538 0.8389 0.8330 0.8373 0.8521 0.8737 - 0.4223 0.4963 0.5547 0.6015 0.6393 0.6701 0.6959 0.7187 0.7400 0.7611 0.7826 0.8047 0.8274 0.8501 0.8725 0.8937 0.9131 0.9301 0.9442 0.9550 0.9619 0.9648 0.9636 0.9583 0.9493 0.9369 0.9221 0.9057 0.8888 0.8725 0.8577 0.8456 0.8369 0.8325 0.8326 0.8371 0.8452 0.8560 0.8679 0.8774 - 0.3182 0.3974 0.4669 0.5288 0.5839 0.6325 0.6753 0.7130 0.7462 0.7755 0.8010 0.8229 0.8411 0.8555 0.8660 0.8727 0.8759 0.8758 0.8730 0.8681 0.8617 0.8544 0.8467 0.8392 0.8324 0.8268 0.8228 0.8207 0.8206 0.8226 0.8265 0.8321 0.8391 0.8469 0.8552 0.8632 0.8703 0.8758 0.8795 0.8796 - 0.3582 0.4383 0.5051 0.5608 0.6060 0.6417 0.6693 0.6901 0.7057 0.7172 0.7257 0.7321 0.7369 0.7406 0.7437 0.7465 0.7494 0.7527 0.7567 0.7618 0.7679 0.7751 0.7834 0.7924 0.8021 0.8121 0.8223 0.8324 0.8421 0.8513 0.8596 0.8668 0.8728 0.8774 0.8806 0.8825 0.8830 0.8826 0.8817 0.8799 - 0.3258 0.3845 0.4315 0.4700 0.5015 0.5274 0.5494 0.5687 0.5865 0.6038 0.6212 0.6389 0.6570 0.6754 0.6938 0.7122 0.7302 0.7476 0.7643 0.7801 0.7949 0.8086 0.8209 0.8318 0.8412 0.8490 0.8552 0.8601 0.8637 0.8662 0.8677 0.8684 0.8684 0.8680 0.8674 0.8671 0.8672 0.8686 0.8722 0.8781 - 0.2466 0.3081 0.3629 0.4126 0.4576 0.4982 0.5350 0.5684 0.5990 0.6271 0.6531 0.6769 0.6986 0.7182 0.7354 0.7504 0.7631 0.7736 0.7823 0.7893 0.7948 0.7991 0.8024 0.8048 0.8063 0.8073 0.8079 0.8082 0.8085 0.8089 0.8094 0.8103 0.8116 0.8136 0.8165 0.8209 0.8274 0.8371 0.8521 0.8744 - 0.2855 0.3545 0.4138 0.4645 0.5072 0.5425 0.5713 0.5946 0.6137 0.6294 0.6426 0.6539 0.6636 0.6721 0.6796 0.6862 0.6922 0.6976 0.7028 0.7078 0.7128 0.7179 0.7228 0.7278 0.7325 0.7371 0.7414 0.7455 0.7493 0.7528 0.7562 0.7593 0.7624 0.7657 0.7699 0.7759 0.7851 0.8002 0.8259 0.8690 - 0.2907 0.3445 0.3880 0.4238 0.4533 0.4779 0.4987 0.5170 0.5337 0.5498 0.5657 0.5817 0.5977 0.6138 0.6298 0.6454 0.6606 0.6752 0.6891 0.7024 0.7148 0.7264 0.7371 0.7467 0.7552 0.7624 0.7684 0.7730 0.7762 0.7781 0.7785 0.7774 0.7749 0.7712 0.7671 0.7638 0.7640 0.7726 0.7995 0.8621 - 0.2294 0.2845 0.3339 0.3790 0.4204 0.4582 0.4930 0.5251 0.5550 0.5829 0.6092 0.6340 0.6571 0.6787 0.6985 0.7166 0.7330 0.7478 0.7612 0.7733 0.7843 0.7942 0.8032 0.8112 0.8182 0.8243 0.8294 0.8334 0.8362 0.8375 0.8370 0.8341 0.8283 0.8189 0.8059 0.7899 0.7734 0.7638 0.7785 0.8541 - 0.2653 0.3349 0.3958 0.4492 0.4952 0.5343 0.5672 0.5949 0.6186 0.6390 0.6571 0.6733 0.6881 0.7016 0.7140 0.7255 0.7361 0.7460 0.7553 0.7643 0.7729 0.7813 0.7895 0.7975 0.8052 0.8129 0.8205 0.8282 0.8359 0.8434 0.8504 0.8561 0.8590 0.8574 0.8490 0.8316 0.8047 0.7748 0.7663 0.8455 - 0.3110 0.3724 0.4226 0.4642 0.4986 0.5274 0.5519 0.5735 0.5933 0.6121 0.6305 0.6486 0.6665 0.6839 0.7007 0.7165 0.7312 0.7447 0.7569 0.7678 0.7772 0.7853 0.7919 0.7972 0.8011 0.8041 0.8065 0.8090 0.8123 0.8172 0.8241 0.8335 0.8447 0.8559 0.8632 0.8602 0.8393 0.7989 0.7640 0.8367 - 0.2834 0.3461 0.4017 0.4527 0.4997 0.5430 0.5832 0.6206 0.6556 0.6886 0.7197 0.7489 0.7760 0.8009 0.8235 0.8436 0.8611 0.8760 0.8885 0.8985 0.9060 0.9109 0.9130 0.9121 0.9080 0.9007 0.8903 0.8774 0.8629 0.8482 0.8355 0.8273 0.8262 0.8339 0.8486 0.8629 0.8612 0.8263 0.7703 0.8281 - 0.3295 0.4175 0.4963 0.5668 0.6289 0.6826 0.7288 0.7684 0.8026 0.8325 0.8591 0.8829 0.9045 0.9240 0.9417 0.9575 0.9717 0.9843 0.9954 1.0052 1.0135 1.0202 1.0250 1.0274 1.0267 1.0221 1.0128 0.9977 0.9764 0.9487 0.9159 0.8814 0.8509 0.8320 0.8314 0.8481 0.8654 0.8487 0.7823 0.8201 - 0.4388 0.5327 0.6100 0.6739 0.7262 0.7691 0.8046 0.8348 0.8615 0.8859 0.9089 0.9308 0.9516 0.9711 0.9890 1.0050 1.0190 1.0309 1.0408 1.0489 1.0554 1.0606 1.0648 1.0683 1.0712 1.0732 1.0736 1.0708 1.0622 1.0446 1.0150 0.9724 0.9206 0.8699 0.8364 0.8339 0.8569 0.8622 0.7970 0.8128 - 0.4797 0.5694 0.6446 0.7101 0.7680 0.8198 0.8667 0.9094 0.9487 0.9848 1.0179 1.0482 1.0754 1.0995 1.1201 1.1372 1.1507 1.1605 1.1665 1.1686 1.1669 1.1615 1.1527 1.1413 1.1286 1.1163 1.1062 1.0994 1.0952 1.0901 1.0776 1.0495 1.0005 0.9342 0.8688 0.8334 0.8447 0.8668 0.8117 0.8065 - 0.5101 0.6216 0.7200 0.8076 0.8839 0.9487 1.0023 1.0459 1.0812 1.1100 1.1340 1.1548 1.1733 1.1903 1.2061 1.2211 1.2351 1.2483 1.2601 1.2700 1.2769 1.2792 1.2753 1.2635 1.2433 1.2157 1.1838 1.1528 1.1279 1.1122 1.1031 1.0904 1.0592 0.9988 0.9172 0.8491 0.8362 0.8654 0.8247 0.8012 - 0.5945 0.7221 0.8253 0.9064 0.9668 1.0096 1.0388 1.0594 1.0754 1.0901 1.1052 1.1215 1.1385 1.1555 1.1716 1.1863 1.1997 1.2125 1.2258 1.2410 1.2588 1.2786 1.2982 1.3134 1.3185 1.3086 1.2813 1.2395 1.1918 1.1498 1.1224 1.1080 1.0907 1.0468 0.9658 0.8750 0.8342 0.8610 0.8350 0.7969 - 0.6512 0.7619 0.8408 0.8971 0.9391 0.9745 1.0100 1.0495 1.0940 1.1424 1.1918 1.2387 1.2797 1.3119 1.3335 1.3434 1.3416 1.3296 1.3102 1.2884 1.2702 1.2617 1.2667 1.2850 1.3101 1.3307 1.3339 1.3111 1.2635 1.2042 1.1524 1.1216 1.1053 1.0757 1.0046 0.9028 0.8374 0.8563 0.8425 0.7936 - 0.6432 0.7370 0.8094 0.8760 0.9469 1.0273 1.1169 1.2111 1.3029 1.3852 1.4534 1.5061 1.5447 1.5722 1.5913 1.6022 1.6022 1.5869 1.5524 1.4989 1.4324 1.3649 1.3114 1.2843 1.2871 1.3111 1.3368 1.3419 1.3129 1.2539 1.1868 1.1373 1.1133 1.0909 1.0305 0.9260 0.8429 0.8525 0.8476 0.7913 - 0.6215 0.7194 0.8113 0.9125 1.0276 1.1524 1.2759 1.3837 1.4633 1.5082 1.5204 1.5102 1.4934 1.4866 1.5012 1.5390 1.5910 1.6394 1.6637 1.6487 1.5911 1.5025 1.4066 1.3304 1.2933 1.2973 1.3249 1.3464 1.3353 1.2846 1.2125 1.1508 1.1184 1.0979 1.0449 0.9408 0.8476 0.8502 0.8504 0.7900 - 0.6145 0.7185 0.8226 0.9401 1.0720 1.2090 1.3347 1.4313 1.4851 1.4916 1.4580 1.4021 1.3481 1.3201 1.3341 1.3926 1.4826 1.5786 1.6505 1.6740 1.6393 1.5562 1.4511 1.3576 1.3027 1.2951 1.3197 1.3454 1.3410 1.2945 1.2217 1.1562 1.1204 1.1000 1.0494 0.9459 0.8494 0.8494 0.8513 0.7895 - 5.3575 5.5113 5.3251 5.0329 4.7943 4.6847 4.6975 4.7695 4.8172 4.7727 4.6062 4.3333 4.0053 3.6880 3.4376 3.2808 3.2072 3.1756 3.1325 3.0347 2.8676 2.6512 2.4301 2.2528 2.1463 2.1018 2.0770 2.0192 1.8971 1.7243 1.5551 1.4482 1.4167 1.4047 1.3296 1.1780 1.0573 1.0579 1.0010 0.8601 - 5.1570 5.2652 5.0896 4.8477 4.6749 4.6239 4.6734 4.7560 4.7934 4.7277 4.5407 4.2566 3.9303 3.6262 3.3950 3.2566 3.1949 3.1665 3.1190 3.0133 2.8397 2.6217 2.4051 2.2359 2.1376 2.0978 2.0727 2.0112 1.8855 1.7123 1.5468 1.4451 1.4165 1.4033 1.3251 1.1732 1.0558 1.0582 0.9994 0.8604 - 4.4978 4.5651 4.4850 4.4145 4.4226 4.5093 4.6265 4.7075 4.6959 4.5653 4.3273 4.0251 3.7180 3.4611 3.2874 3.1981 3.1636 3.1369 3.0721 2.9428 2.7532 2.5352 2.3349 2.1910 2.1155 2.0866 2.0583 1.9850 1.8495 1.6770 1.5234 1.4370 1.4160 1.3983 1.3113 1.1592 1.0518 1.0590 0.9946 0.8612 - 3.5040 3.7036 3.8643 4.0488 4.2525 4.4360 4.5497 4.5554 4.4409 4.2239 3.9465 3.6624 3.4215 3.2548 3.1666 3.1342 3.1172 3.0728 2.9715 2.8085 2.6053 2.4011 2.2361 2.1339 2.0890 2.0689 2.0285 1.9348 1.7869 1.6210 1.4900 1.4274 1.4151 1.3876 1.2871 1.1372 1.0468 1.0601 0.9865 0.8625 - 2.7790 3.2263 3.6155 3.9429 4.1788 4.2964 4.2854 4.1580 3.9471 3.6986 3.4602 3.2702 3.1484 3.0918 3.0770 3.0685 3.0303 2.9386 2.7898 2.6021 2.4089 2.2461 2.1374 2.0843 2.0638 2.0381 1.9723 1.8530 1.6985 1.5516 1.4549 1.4200 1.4119 1.3675 1.2518 1.1099 1.0428 1.0609 0.9749 0.8643 - 2.6876 3.1978 3.5617 3.7818 3.8612 3.8177 3.6843 3.5028 3.3160 3.1591 3.0530 3.0014 2.9912 2.9969 2.9890 2.9421 2.8435 2.6974 2.5234 2.3508 2.2084 2.1141 2.0676 2.0499 2.0296 1.9766 1.8761 1.7378 1.5938 1.4830 1.4280 1.4161 1.4012 1.3331 1.2056 1.0813 1.0419 1.0601 0.9598 0.8667 - 2.6050 2.9335 3.1068 3.1627 3.1351 3.0603 2.9730 2.9001 2.8575 2.8479 2.8623 2.8828 2.8885 2.8607 2.7890 2.6743 2.5291 2.3747 2.2349 2.1291 2.0655 2.0379 2.0271 2.0075 1.9559 1.8627 1.7364 1.6029 1.4942 1.4324 1.4147 1.4100 1.3740 1.2805 1.1522 1.0569 1.0453 1.0559 0.9413 0.8697 - 2.0026 2.2117 2.3387 2.4208 2.4810 2.5345 2.5890 2.6444 2.6944 2.7286 2.7363 2.7090 2.6438 2.5451 2.4239 2.2964 2.1802 2.0900 2.0329 2.0067 1.9994 1.9925 1.9665 1.9077 1.8138 1.6962 1.5771 1.4817 1.4263 1.4092 1.4080 1.3877 1.3212 1.2113 1.0995 1.0422 1.0518 1.0455 0.9204 0.8731 - 1.4676 1.7315 1.9480 2.1298 2.2784 2.3921 2.4688 2.5067 2.5060 2.4695 2.4032 2.3162 2.2200 2.1270 2.0485 1.9922 1.9608 1.9504 1.9517 1.9512 1.9351 1.8928 1.8211 1.7252 1.6191 1.5212 1.4487 1.4100 1.4002 1.4008 1.3853 1.3328 1.2413 1.1358 1.0588 1.0403 1.0576 1.0266 0.8984 0.8769 - 1.4011 1.6704 1.8735 2.0180 2.1077 2.1479 2.1470 2.1154 2.0646 2.0060 1.9500 1.9045 1.8749 1.8623 1.8644 1.8751 1.8858 1.8870 1.8705 1.8310 1.7684 1.6876 1.5989 1.5150 1.4483 1.4066 1.3901 1.3898 1.3897 1.3711 1.3214 1.2413 1.1484 1.0727 1.0398 1.0485 1.0558 0.9977 0.8776 0.8809 - 1.2522 1.4287 1.5454 1.6177 1.6566 1.6728 1.6767 1.6774 1.6814 1.6926 1.7116 1.7363 1.7622 1.7834 1.7938 1.7883 1.7637 1.7200 1.6603 1.5911 1.5206 1.4578 1.4101 1.3815 1.3713 1.3734 1.3770 1.3699 1.3416 1.2878 1.2139 1.1348 1.0712 1.0401 1.0429 1.0567 1.0393 0.9601 0.8605 0.8849 - 0.8874 1.0374 1.1564 1.2553 1.3392 1.4117 1.4750 1.5302 1.5770 1.6141 1.6394 1.6510 1.6474 1.6283 1.5950 1.5508 1.5002 1.4492 1.4035 1.3683 1.3465 1.3384 1.3414 1.3495 1.3551 1.3501 1.3282 1.2868 1.2287 1.1623 1.1000 1.0551 1.0360 1.0407 1.0541 1.0499 1.0039 0.9183 0.8497 0.8885 - 0.7647 0.9352 1.0769 1.1937 1.2863 1.3555 1.4027 1.4300 1.4400 1.4356 1.4200 1.3965 1.3686 1.3401 1.3143 1.2943 1.2821 1.2787 1.2835 1.2940 1.3067 1.3167 1.3192 1.3099 1.2863 1.2484 1.1996 1.1459 1.0953 1.0561 1.0342 1.0310 1.0412 1.0527 1.0491 1.0165 0.9530 0.8802 0.8472 0.8915 - 0.7534 0.8855 0.9839 1.0548 1.1023 1.1305 1.1442 1.1484 1.1477 1.1461 1.1465 1.1510 1.1605 1.1749 1.1932 1.2134 1.2333 1.2500 1.2606 1.2630 1.2552 1.2368 1.2085 1.1725 1.1323 1.0927 1.0584 1.0340 1.0219 1.0223 1.0318 1.0439 1.0497 1.0402 1.0094 0.9585 0.8990 0.8544 0.8530 0.8934 - 0.5609 0.6574 0.7335 0.7957 0.8476 0.8920 0.9316 0.9685 1.0039 1.0384 1.0716 1.1025 1.1297 1.1516 1.1665 1.1733 1.1715 1.1613 1.1436 1.1202 1.0934 1.0660 1.0408 1.0205 1.0071 1.0017 1.0042 1.0129 1.0250 1.0360 1.0411 1.0357 1.0166 0.9836 0.9403 0.8948 0.8591 0.8466 0.8652 0.8939 - 0.4468 0.5555 0.6500 0.7328 0.8044 0.8649 0.9149 0.9551 0.9862 1.0089 1.0238 1.0314 1.0324 1.0278 1.0186 1.0063 0.9926 0.9794 0.9683 0.9610 0.9583 0.9607 0.9680 0.9792 0.9926 1.0062 1.0174 1.0239 1.0234 1.0143 0.9961 0.9697 0.9375 0.9036 0.8734 0.8526 0.8462 0.8565 0.8798 0.8928 - 0.4743 0.5713 0.6492 0.7108 0.7576 0.7914 0.8144 0.8289 0.8374 0.8421 0.8449 0.8474 0.8507 0.8557 0.8630 0.8730 0.8856 0.9005 0.9172 0.9348 0.9522 0.9681 0.9809 0.9896 0.9929 0.9903 0.9815 0.9670 0.9479 0.9256 0.9021 0.8798 0.8612 0.8486 0.8440 0.8479 0.8595 0.8759 0.8913 0.8897 - 0.3862 0.4547 0.5095 0.5544 0.5917 0.6234 0.6513 0.6771 0.7023 0.7275 0.7534 0.7797 0.8061 0.8320 0.8565 0.8787 0.8979 0.9134 0.9247 0.9315 0.9337 0.9315 0.9252 0.9155 0.9031 0.8891 0.8748 0.8614 0.8500 0.8416 0.8370 0.8366 0.8404 0.8481 0.8589 0.8712 0.8830 0.8918 0.8949 0.8847 - 0.2948 0.3697 0.4367 0.4974 0.5522 0.6012 0.6446 0.6830 0.7167 0.7460 0.7711 0.7919 0.8086 0.8210 0.8293 0.8337 0.8348 0.8331 0.8294 0.8245 0.8192 0.8142 0.8101 0.8075 0.8069 0.8085 0.8123 0.8185 0.8266 0.8363 0.8470 0.8580 0.8686 0.8781 0.8859 0.8912 0.8935 0.8921 0.8873 0.8778 - 0.3316 0.4077 0.4719 0.5256 0.5695 0.6042 0.6309 0.6511 0.6661 0.6774 0.6859 0.6927 0.6984 0.7037 0.7090 0.7147 0.7212 0.7288 0.7377 0.7479 0.7595 0.7721 0.7856 0.7994 0.8133 0.8268 0.8395 0.8511 0.8612 0.8697 0.8762 0.8807 0.8831 0.8836 0.8825 0.8799 0.8762 0.8720 0.8687 0.8692 - 0.3044 0.3596 0.4042 0.4409 0.4715 0.4972 0.5195 0.5399 0.5594 0.5788 0.5987 0.6193 0.6405 0.6620 0.6837 0.7050 0.7256 0.7453 0.7637 0.7806 0.7959 0.8094 0.8209 0.8303 0.8377 0.8431 0.8467 0.8486 0.8492 0.8487 0.8474 0.8453 0.8429 0.8404 0.8382 0.8365 0.8359 0.8372 0.8426 0.8593 - 0.2311 0.2888 0.3409 0.3891 0.4335 0.4743 0.5118 0.5463 0.5781 0.6074 0.6343 0.6589 0.6810 0.7005 0.7174 0.7316 0.7433 0.7527 0.7600 0.7655 0.7696 0.7726 0.7747 0.7761 0.7769 0.7774 0.7778 0.7781 0.7786 0.7793 0.7803 0.7814 0.7828 0.7845 0.7866 0.7895 0.7939 0.8010 0.8147 0.8485 - 0.2629 0.3292 0.3869 0.4370 0.4795 0.5148 0.5438 0.5673 0.5865 0.6023 0.6154 0.6267 0.6364 0.6451 0.6529 0.6602 0.6671 0.6739 0.6807 0.6877 0.6949 0.7024 0.7101 0.7178 0.7254 0.7328 0.7398 0.7464 0.7524 0.7578 0.7624 0.7662 0.7690 0.7707 0.7717 0.7724 0.7736 0.7779 0.7914 0.8373 - 0.2746 0.3263 0.3682 0.4029 0.4316 0.4555 0.4761 0.4946 0.5119 0.5289 0.5462 0.5639 0.5820 0.6005 0.6191 0.6376 0.6558 0.6734 0.6904 0.7067 0.7221 0.7366 0.7501 0.7625 0.7736 0.7835 0.7919 0.7991 0.8049 0.8093 0.8121 0.8131 0.8121 0.8087 0.8029 0.7947 0.7848 0.7761 0.7775 0.8263 - 0.2179 0.2687 0.3147 0.3575 0.3974 0.4348 0.4698 0.5028 0.5340 0.5636 0.5917 0.6182 0.6431 0.6662 0.6875 0.7068 0.7243 0.7400 0.7542 0.7670 0.7787 0.7894 0.7991 0.8081 0.8163 0.8239 0.8308 0.8372 0.8430 0.8482 0.8524 0.8553 0.8561 0.8540 0.8478 0.8361 0.8178 0.7940 0.7750 0.8159 - 0.2405 0.3066 0.3657 0.4186 0.4650 0.5050 0.5391 0.5681 0.5929 0.6144 0.6333 0.6501 0.6654 0.6794 0.6922 0.7042 0.7153 0.7259 0.7359 0.7456 0.7550 0.7641 0.7729 0.7813 0.7893 0.7971 0.8047 0.8123 0.8201 0.8284 0.8371 0.8461 0.8550 0.8628 0.8675 0.8656 0.8520 0.8223 0.7830 0.8065 - 0.2898 0.3500 0.3995 0.4406 0.4747 0.5032 0.5276 0.5493 0.5694 0.5889 0.6083 0.6279 0.6476 0.6673 0.6867 0.7055 0.7235 0.7404 0.7560 0.7703 0.7830 0.7941 0.8034 0.8107 0.8160 0.8194 0.8212 0.8216 0.8214 0.8212 0.8220 0.8250 0.8312 0.8414 0.8548 0.8676 0.8706 0.8498 0.7983 0.7982 - 0.2686 0.3255 0.3761 0.4229 0.4668 0.5084 0.5480 0.5860 0.6226 0.6579 0.6919 0.7243 0.7549 0.7835 0.8098 0.8338 0.8553 0.8744 0.8911 0.9055 0.9176 0.9273 0.9344 0.9387 0.9399 0.9378 0.9321 0.9227 0.9096 0.8934 0.8750 0.8564 0.8409 0.8327 0.8358 0.8509 0.8694 0.8678 0.8168 0.7913 - 0.2905 0.3706 0.4446 0.5129 0.5750 0.6304 0.6792 0.7220 0.7596 0.7927 0.8223 0.8490 0.8731 0.8950 0.9149 0.9331 0.9495 0.9645 0.9781 0.9904 1.0016 1.0116 1.0202 1.0272 1.0322 1.0348 1.0341 1.0292 1.0188 1.0015 0.9761 0.9428 0.9044 0.8671 0.8412 0.8371 0.8561 0.8738 0.8348 0.7858 - 0.3876 0.4790 0.5565 0.6218 0.6761 0.7210 0.7583 0.7901 0.8184 0.8444 0.8693 0.8934 0.9168 0.9393 0.9605 0.9802 0.9979 1.0136 1.0270 1.0383 1.0474 1.0545 1.0600 1.0640 1.0670 1.0696 1.0718 1.0734 1.0732 1.0686 1.0558 1.0304 0.9897 0.9358 0.8800 0.8426 0.8429 0.8701 0.8498 0.7815 - 0.4413 0.5259 0.5962 0.6571 0.7110 0.7599 0.8052 0.8480 0.8888 0.9278 0.9649 0.9998 1.0321 1.0615 1.0876 1.1104 1.1296 1.1453 1.1575 1.1662 1.1711 1.1722 1.1691 1.1618 1.1508 1.1372 1.1227 1.1097 1.1001 1.0943 1.0899 1.0802 1.0554 1.0075 0.9385 0.8697 0.8387 0.8615 0.8607 0.7784 - 0.4577 0.5551 0.6430 0.7243 0.7987 0.8653 0.9236 0.9735 1.0155 1.0507 1.0802 1.1052 1.1268 1.1459 1.1633 1.1794 1.1947 1.2095 1.2238 1.2377 1.2506 1.2616 1.2689 1.2705 1.2643 1.2488 1.2241 1.1924 1.1590 1.1301 1.1109 1.1006 1.0892 1.0592 0.9963 0.9098 0.8458 0.8525 0.8676 0.7762 - 0.5140 0.6340 0.7380 0.8258 0.8960 0.9490 0.9868 1.0130 1.0319 1.0472 1.0618 1.0775 1.0946 1.1127 1.1309 1.1481 1.1636 1.1774 1.1901 1.2028 1.2171 1.2341 1.2541 1.2756 1.2948 1.3060 1.3030 1.2817 1.2430 1.1945 1.1493 1.1190 1.1043 1.0877 1.0405 0.9514 0.8610 0.8456 0.8713 0.7748 - 0.5809 0.6990 0.7887 0.8537 0.8986 0.9301 0.9559 0.9830 1.0160 1.0566 1.1038 1.1544 1.2045 1.2498 1.2872 1.3142 1.3296 1.3331 1.3256 1.3092 1.2876 1.2666 1.2527 1.2514 1.2647 1.2885 1.3123 1.3219 1.3056 1.2614 1.2014 1.1475 1.1163 1.1013 1.0688 0.9862 0.8793 0.8418 0.8728 0.7739 - 0.6056 0.7055 0.7756 0.8278 0.8735 0.9235 0.9849 1.0598 1.1454 1.2349 1.3203 1.3946 1.4539 1.4979 1.5293 1.5515 1.5666 1.5735 1.5682 1.5455 1.5025 1.4420 1.3740 1.3137 1.2764 1.2702 1.2903 1.3182 1.3292 1.3052 1.2475 1.1791 1.1299 1.1086 1.0846 1.0109 0.8956 0.8404 0.8731 0.7734 - 0.6005 0.6898 0.7571 0.8195 0.8904 0.9775 1.0810 1.1936 1.3020 1.3922 1.4530 1.4807 1.4803 1.4650 1.4517 1.4553 1.4834 1.5322 1.5868 1.6263 1.6309 1.5910 1.5125 1.4163 1.3315 1.2829 1.2788 1.3050 1.3306 1.3246 1.2757 1.2026 1.1414 1.1129 1.0922 1.0252 0.9066 0.8401 0.8730 0.7731 - 0.5956 0.6831 0.7531 0.8238 0.9080 1.0109 1.1285 1.2483 1.3532 1.4261 1.4565 1.4437 1.3991 1.3436 1.3021 1.2960 1.3351 1.4139 1.5115 1.5978 1.6434 1.6310 1.5628 1.4612 1.3610 1.2947 1.2778 1.2998 1.3289 1.3293 1.2847 1.2110 1.1459 1.1144 1.0945 1.0299 0.9104 0.8402 0.8730 0.7730 - 3.9503 3.9902 3.9421 3.9430 4.0322 4.1795 4.3176 4.3776 4.3177 4.1365 3.8706 3.5798 3.3251 3.1480 3.0578 3.0304 3.0201 2.9783 2.8736 2.7043 2.4985 2.3013 2.1542 2.0748 2.0474 2.0301 1.9766 1.8630 1.7052 1.5516 1.4529 1.4213 1.4124 1.3555 1.2246 1.0895 1.0529 1.0700 0.9400 0.9003 - 3.7552 3.8160 3.8164 3.8710 4.0013 4.1679 4.3037 4.3470 4.2661 4.0691 3.7984 3.5146 3.2754 3.1164 3.0409 3.0210 3.0102 2.9622 2.8500 2.6760 2.4708 2.2793 2.1405 2.0683 2.0442 2.0255 1.9679 1.8507 1.6927 1.5428 1.4493 1.4210 1.4116 1.3518 1.2196 1.0868 1.0531 1.0693 0.9383 0.9005 - 3.2365 3.3956 3.5424 3.7327 3.9491 4.1386 4.2440 4.2287 4.0899 3.8584 3.5874 3.3350 3.1460 3.0385 3.0002 2.9948 2.9763 2.9077 2.7742 2.5898 2.3904 2.2185 2.1045 2.0519 2.0347 2.0100 1.9396 1.8130 1.6560 1.5180 1.4399 1.4203 1.4083 1.3399 1.2045 1.0791 1.0538 1.0671 0.9331 0.9011 - 2.6728 3.0219 3.3530 3.6621 3.9087 4.0502 4.0632 3.9524 3.7501 3.5065 3.2749 3.0973 2.9928 2.9544 2.9526 2.9471 2.9014 2.7961 2.6358 2.4475 2.2694 2.1354 2.0601 2.0321 2.0179 1.9778 1.8866 1.7487 1.5987 1.4828 1.4283 1.4191 1.3999 1.3178 1.1800 1.0684 1.0556 1.0629 0.9249 0.9019 - 2.4432 2.9329 3.3260 3.6047 3.7494 3.7589 3.6547 3.4770 3.2746 3.0926 2.9624 2.8947 2.8790 2.8881 2.8876 2.8476 2.7527 2.6076 2.4348 2.2673 2.1356 2.0559 2.0226 2.0106 1.9851 1.9179 1.8026 1.6601 1.5294 1.4464 1.4190 1.4155 1.3818 1.2833 1.1478 1.0574 1.0589 1.0556 0.9139 0.9030 - 2.4807 2.8984 3.1576 3.2752 3.2736 3.1878 3.0602 2.9313 2.8322 2.7781 2.7676 2.7841 2.8023 2.7959 2.7460 2.6467 2.5078 2.3515 2.2058 2.0943 2.0283 2.0018 1.9933 1.9736 1.9181 1.8184 1.6881 1.5583 1.4630 1.4191 1.4133 1.4043 1.3483 1.2356 1.1119 1.0498 1.0633 1.0439 0.9011 0.9042 - 2.2385 2.4761 2.5900 2.6234 2.6118 2.5863 2.5705 2.5762 2.6034 2.6417 2.6740 2.6823 2.6530 2.5808 2.4713 2.3399 2.2078 2.0961 2.0191 1.9800 1.9687 1.9649 1.9452 1.8914 1.7988 1.6795 1.5590 1.4656 1.4163 1.4058 1.4053 1.3760 1.2947 1.1776 1.0786 1.0484 1.0669 1.0263 0.8875 0.9054 - 1.6486 1.8428 1.9837 2.0994 2.2029 2.2990 2.3856 2.4559 2.5011 2.5132 2.4876 2.4256 2.3347 2.2280 2.1214 2.0307 1.9668 1.9332 1.9242 1.9264 1.9218 1.8942 1.8340 1.7427 1.6338 1.5287 1.4488 1.4062 1.3965 1.3980 1.3803 1.3209 1.2223 1.1181 1.0554 1.0538 1.0661 1.0019 0.8747 0.9063 - 1.3015 1.5625 1.7806 1.9614 2.1024 2.2002 2.2535 2.2640 2.2369 2.1809 2.1071 2.0281 1.9561 1.9006 1.8671 1.8554 1.8595 1.8688 1.8705 1.8529 1.8088 1.7380 1.6483 1.5540 1.4718 1.4151 1.3888 1.3856 1.3873 1.3715 1.3215 1.2379 1.1425 1.0705 1.0477 1.0623 1.0560 0.9710 0.8645 0.9068 - 1.2838 1.5206 1.6929 1.8086 1.8729 1.8939 1.8823 1.8504 1.8106 1.7735 1.7472 1.7361 1.7404 1.7562 1.7765 1.7924 1.7950 1.7776 1.7373 1.6760 1.6009 1.5227 1.4532 1.4024 1.3752 1.3687 1.3729 1.3722 1.3514 1.3017 1.2265 1.1430 1.0763 1.0469 1.0540 1.0656 1.0321 0.9359 0.8588 0.9066 - 1.0940 1.2441 1.3442 1.4095 1.4507 1.4776 1.4989 1.5211 1.5478 1.5797 1.6144 1.6476 1.6736 1.6867 1.6826 1.6592 1.6178 1.5628 1.5012 1.4415 1.3919 1.3582 1.3427 1.3424 1.3499 1.3545 1.3452 1.3143 1.2606 1.1912 1.1209 1.0674 1.0436 1.0486 1.0628 1.0529 0.9934 0.9013 0.8588 0.9053 - 0.7787 0.9214 1.0401 1.1432 1.2338 1.3132 1.3818 1.4390 1.4837 1.5143 1.5296 1.5290 1.5132 1.4844 1.4462 1.4039 1.3629 1.3289 1.3058 1.2955 1.2972 1.3069 1.3185 1.3243 1.3173 1.2930 1.2507 1.1951 1.1351 1.0825 1.0480 1.0369 1.0453 1.0587 1.0553 1.0170 0.9446 0.8734 0.8648 0.9028 - 0.7067 0.8664 0.9990 1.1073 1.1914 1.2517 1.2900 1.3088 1.3116 1.3024 1.2852 1.2644 1.2438 1.2271 1.2170 1.2149 1.2209 1.2336 1.2500 1.2660 1.2768 1.2782 1.2668 1.2415 1.2038 1.1580 1.1106 1.0692 1.0405 1.0284 1.0319 1.0446 1.0548 1.0491 1.0177 0.9612 0.8971 0.8584 0.8758 0.8989 - 0.6836 0.8012 0.8882 0.9506 0.9925 1.0182 1.0328 1.0410 1.0473 1.0550 1.0666 1.0830 1.1040 1.1284 1.1540 1.1779 1.1972 1.2091 1.2113 1.2029 1.1840 1.1563 1.1227 1.0874 1.0550 1.0299 1.0152 1.0123 1.0194 1.0322 1.0438 1.0464 1.0331 1.0010 0.9535 0.9021 0.8645 0.8592 0.8889 0.8933 - 0.5020 0.5912 0.6638 0.7255 0.7794 0.8277 0.8724 0.9147 0.9550 0.9931 1.0282 1.0588 1.0835 1.1007 1.1093 1.1091 1.1004 1.0845 1.0637 1.0407 1.0184 0.9997 0.9871 0.9819 0.9844 0.9936 1.0069 1.0206 1.0306 1.0323 1.0225 1.0000 0.9662 0.9263 0.8884 0.8623 0.8564 0.8730 0.9000 0.8861 - 0.4136 0.5170 0.6079 0.6883 0.7578 0.8164 0.8641 0.9015 0.9291 0.9480 0.9589 0.9628 0.9611 0.9551 0.9464 0.9370 0.9286 0.9230 0.9216 0.9251 0.9336 0.9465 0.9623 0.9789 0.9938 1.0044 1.0085 1.0045 0.9919 0.9711 0.9442 0.9146 0.8865 0.8649 0.8539 0.8562 0.8706 0.8913 0.9047 0.8772 - 0.4389 0.5289 0.6011 0.6581 0.7011 0.7320 0.7530 0.7667 0.7756 0.7819 0.7877 0.7945 0.8033 0.8148 0.8292 0.8464 0.8657 0.8863 0.9072 0.9268 0.9439 0.9570 0.9648 0.9665 0.9619 0.9511 0.9354 0.9162 0.8958 0.8764 0.8605 0.8501 0.8467 0.8507 0.8614 0.8766 0.8923 0.9025 0.8995 0.8670 - 0.3550 0.4184 0.4698 0.5128 0.5497 0.5821 0.6119 0.6406 0.6690 0.6979 0.7273 0.7567 0.7856 0.8130 0.8377 0.8590 0.8759 0.8880 0.8950 0.8971 0.8945 0.8881 0.8787 0.8675 0.8558 0.8448 0.8360 0.8304 0.8289 0.8317 0.8387 0.8491 0.8618 0.8752 0.8876 0.8968 0.9006 0.8969 0.8837 0.8558 - 0.2744 0.3454 0.4099 0.4693 0.5235 0.5723 0.6159 0.6542 0.6876 0.7161 0.7398 0.7589 0.7734 0.7835 0.7896 0.7921 0.7919 0.7898 0.7868 0.7838 0.7818 0.7814 0.7833 0.7876 0.7946 0.8039 0.8154 0.8284 0.8421 0.8558 0.8683 0.8790 0.8868 0.8913 0.8922 0.8894 0.8827 0.8724 0.8593 0.8441 - 0.3084 0.3810 0.4425 0.4942 0.5364 0.5697 0.5953 0.6146 0.6289 0.6398 0.6484 0.6558 0.6629 0.6702 0.6783 0.6876 0.6983 0.7106 0.7244 0.7397 0.7561 0.7731 0.7903 0.8070 0.8226 0.8366 0.8485 0.8581 0.8651 0.8694 0.8711 0.8703 0.8672 0.8624 0.8564 0.8497 0.8428 0.8362 0.8311 0.8322 - 0.2859 0.3380 0.3802 0.4152 0.4446 0.4698 0.4924 0.5136 0.5344 0.5558 0.5780 0.6011 0.6250 0.6492 0.6733 0.6967 0.7190 0.7397 0.7585 0.7750 0.7892 0.8009 0.8100 0.8167 0.8209 0.8231 0.8234 0.8224 0.8203 0.8176 0.8144 0.8112 0.8081 0.8054 0.8033 0.8019 0.8014 0.8021 0.8056 0.8209 - 0.2176 0.2716 0.3211 0.3676 0.4111 0.4518 0.4897 0.5249 0.5574 0.5874 0.6149 0.6396 0.6616 0.6806 0.6966 0.7096 0.7199 0.7278 0.7337 0.7379 0.7410 0.7433 0.7451 0.7467 0.7482 0.7499 0.7519 0.7543 0.7571 0.7603 0.7638 0.7673 0.7708 0.7740 0.7769 0.7794 0.7814 0.7837 0.7884 0.8105 - 0.2428 0.3065 0.3627 0.4119 0.4541 0.4894 0.5184 0.5419 0.5610 0.5766 0.5896 0.6006 0.6104 0.6193 0.6277 0.6360 0.6443 0.6529 0.6620 0.6718 0.6821 0.6930 0.7042 0.7156 0.7270 0.7380 0.7487 0.7587 0.7680 0.7764 0.7838 0.7898 0.7943 0.7970 0.7977 0.7964 0.7928 0.7874 0.7831 0.8015 - 0.2601 0.3102 0.3509 0.3844 0.4122 0.4354 0.4555 0.4738 0.4914 0.5091 0.5275 0.5466 0.5667 0.5874 0.6085 0.6296 0.6505 0.6708 0.6905 0.7093 0.7272 0.7440 0.7595 0.7738 0.7868 0.7983 0.8086 0.8176 0.8255 0.8323 0.8378 0.8419 0.8443 0.8445 0.8422 0.8364 0.8259 0.8097 0.7898 0.7942 - 0.2088 0.2555 0.2981 0.3382 0.3763 0.4126 0.4474 0.4809 0.5130 0.5438 0.5733 0.6012 0.6274 0.6517 0.6740 0.6940 0.7120 0.7280 0.7423 0.7552 0.7668 0.7774 0.7871 0.7962 0.8045 0.8124 0.8199 0.8272 0.8343 0.8413 0.8482 0.8549 0.8609 0.8658 0.8687 0.8676 0.8594 0.8397 0.8056 0.7887 - 0.2187 0.2810 0.3380 0.3900 0.4365 0.4772 0.5124 0.5426 0.5685 0.5908 0.6104 0.6277 0.6434 0.6577 0.6709 0.6833 0.6951 0.7065 0.7175 0.7283 0.7389 0.7493 0.7593 0.7688 0.7777 0.7860 0.7937 0.8009 0.8079 0.8148 0.8220 0.8299 0.8388 0.8491 0.8604 0.8709 0.8757 0.8649 0.8262 0.7850 - 0.2693 0.3286 0.3779 0.4190 0.4531 0.4815 0.5056 0.5271 0.5471 0.5668 0.5867 0.6072 0.6284 0.6501 0.6719 0.6937 0.7149 0.7353 0.7547 0.7728 0.7894 0.8043 0.8172 0.8279 0.8363 0.8423 0.8458 0.8469 0.8458 0.8428 0.8387 0.8343 0.8316 0.8326 0.8396 0.8537 0.8709 0.8777 0.8465 0.7830 - 0.2575 0.3096 0.3555 0.3980 0.4382 0.4771 0.5151 0.5527 0.5898 0.6265 0.6625 0.6975 0.7311 0.7628 0.7925 0.8198 0.8447 0.8672 0.8874 0.9053 0.9211 0.9347 0.9461 0.9551 0.9615 0.9651 0.9655 0.9622 0.9547 0.9426 0.9257 0.9044 0.8804 0.8576 0.8417 0.8398 0.8552 0.8769 0.8631 0.7825 - 0.2598 0.3311 0.3989 0.4636 0.5243 0.5802 0.6310 0.6765 0.7171 0.7534 0.7859 0.8151 0.8416 0.8656 0.8875 0.9075 0.9258 0.9426 0.9582 0.9725 0.9858 0.9979 1.0090 1.0188 1.0273 1.0342 1.0393 1.0420 1.0411 1.0351 1.0219 0.9995 0.9668 0.9253 0.8818 0.8492 0.8434 0.8672 0.8739 0.7832 - 0.3388 0.4269 0.5041 0.5711 0.6278 0.6753 0.7148 0.7485 0.7781 0.8053 0.8313 0.8568 0.8820 0.9068 0.9309 0.9538 0.9752 0.9948 1.0122 1.0273 1.0400 1.0503 1.0581 1.0637 1.0672 1.0693 1.0706 1.0718 1.0731 1.0739 1.0720 1.0633 1.0419 1.0029 0.9464 0.8847 0.8455 0.8552 0.8790 0.7847 - 0.4042 0.4865 0.5545 0.6124 0.6629 0.7084 0.7509 0.7919 0.8323 0.8724 0.9119 0.9502 0.9866 1.0206 1.0515 1.0790 1.1031 1.1239 1.1414 1.1558 1.1670 1.1747 1.1786 1.1780 1.1726 1.1625 1.1483 1.1317 1.1153 1.1020 1.0937 1.0891 1.0816 1.0593 1.0103 0.9351 0.8631 0.8464 0.8795 0.7867 - 0.4199 0.5050 0.5816 0.6538 0.7223 0.7869 0.8467 0.9009 0.9490 0.9907 1.0264 1.0566 1.0822 1.1040 1.1230 1.1401 1.1558 1.1711 1.1861 1.2014 1.2169 1.2321 1.2461 1.2575 1.2640 1.2632 1.2526 1.2313 1.2005 1.1650 1.1324 1.1099 1.0988 1.0885 1.0570 0.9856 0.8911 0.8431 0.8770 0.7890 - 0.4489 0.5552 0.6528 0.7415 0.8184 0.8814 0.9301 0.9657 0.9911 1.0097 1.0249 1.0395 1.0552 1.0726 1.0912 1.1103 1.1287 1.1456 1.1605 1.1736 1.1860 1.1990 1.2142 1.2327 1.2540 1.2756 1.2918 1.2954 1.2802 1.2448 1.1959 1.1481 1.1162 1.1023 1.0843 1.0263 0.9221 0.8451 0.8732 0.7912 - 0.5045 0.6226 0.7213 0.7992 0.8560 0.8944 0.9200 0.9401 0.9616 0.9897 1.0268 1.0721 1.1228 1.1747 1.2234 1.2653 1.2977 1.3191 1.3288 1.3266 1.3136 1.2925 1.2683 1.2481 1.2392 1.2464 1.2681 1.2945 1.3101 1.2995 1.2578 1.1970 1.1422 1.1128 1.0985 1.0545 0.9500 0.8503 0.8692 0.7931 - 0.5467 0.6577 0.7399 0.7976 0.8374 0.8694 0.9044 0.9510 1.0136 1.0910 1.1773 1.2639 1.3425 1.4072 1.4561 1.4913 1.5168 1.5360 1.5493 1.5530 1.5407 1.5071 1.4518 1.3828 1.3158 1.2690 1.2549 1.2720 1.3025 1.3184 1.2976 1.2394 1.1702 1.1239 1.1059 1.0717 0.9711 0.8563 0.8660 0.7946 - 0.5621 0.6619 0.7316 0.7815 0.8238 0.8721 0.9366 1.0215 1.1228 1.2294 1.3268 1.4007 1.4427 1.4532 1.4419 1.4250 1.4203 1.4395 1.4839 1.5419 1.5925 1.6128 1.5877 1.5177 1.4217 1.3301 1.2728 1.2631 1.2894 1.3187 1.3152 1.2654 1.1909 1.1331 1.1098 1.0806 0.9840 0.8608 0.8640 0.7955 - 0.5644 0.6600 0.7264 0.7761 0.8233 0.8816 0.9601 1.0595 1.1714 1.2804 1.3680 1.4191 1.4266 1.3957 1.3433 1.2936 1.2715 1.2931 1.3597 1.4553 1.5506 1.6131 1.6188 1.5634 1.4655 1.3606 1.2861 1.2632 1.2846 1.3169 1.3197 1.2739 1.1983 1.1366 1.1111 1.0834 0.9883 0.8624 0.8633 0.7958 - 2.8075 2.9892 3.1894 3.4315 3.6732 3.8515 3.9154 3.8472 3.6678 3.4269 3.1852 2.9946 2.8815 2.8416 2.8431 2.8415 2.7970 2.6899 2.5283 2.3437 2.1773 2.0611 2.0038 1.9855 1.9678 1.9130 1.8055 1.6631 1.5284 1.4430 1.4160 1.4112 1.3691 1.2598 1.1259 1.0555 1.0685 1.0351 0.8893 0.9119 - 2.6946 2.9157 3.1545 3.4207 3.6673 3.8342 3.8786 3.7920 3.6021 3.3619 3.1309 2.9564 2.8592 2.8302 2.8353 2.8305 2.7789 2.6650 2.5004 2.3180 2.1580 2.0498 1.9988 1.9828 1.9632 1.9042 1.7934 1.6508 1.5195 1.4388 1.4151 1.4102 1.3657 1.2548 1.1223 1.0552 1.0689 1.0334 0.8883 0.9117 - 2.4423 2.7722 3.0997 3.4061 3.6412 3.7601 3.7450 3.6117 3.4037 3.1775 2.9853 2.8596 2.8055 2.8020 2.8108 2.7920 2.7186 2.5869 2.4170 2.2445 2.1055 2.0206 1.9860 1.9742 1.9473 1.8761 1.7566 1.6152 1.4946 1.4279 1.4126 1.4063 1.3545 1.2394 1.1122 1.0544 1.0698 1.0280 0.8855 0.9113 - 2.2643 2.7092 3.0896 3.3757 3.5354 3.5581 3.4622 3.2893 3.0920 2.9191 2.8026 2.7508 2.7483 2.7632 2.7590 2.7081 2.6009 2.4499 2.2839 2.1373 2.0356 1.9852 1.9696 1.9568 1.9137 1.8233 1.6945 1.5603 1.4599 1.4144 1.4091 1.3974 1.3331 1.2135 1.0969 1.0542 1.0708 1.0187 0.8813 0.9105 - 2.2765 2.7220 3.0302 3.1970 3.2302 3.1579 3.0239 2.8756 2.7532 2.6798 2.6582 2.6724 2.6942 2.6935 2.6481 2.5511 2.4138 2.2613 2.1234 2.0240 1.9714 1.9547 1.9478 1.9204 1.8514 1.7406 1.6101 1.4951 1.4248 1.4035 1.4036 1.3790 1.2986 1.1781 1.0795 1.0559 1.0706 1.0049 0.8765 0.9093 - 2.2436 2.5460 2.7008 2.7425 2.7080 2.6379 2.5688 2.5262 2.5196 2.5430 2.5783 2.6020 2.5928 2.5387 2.4403 2.3121 2.1770 2.0599 1.9787 1.9382 1.9279 1.9254 1.9047 1.8473 1.7504 1.6302 1.5154 1.4344 1.3994 1.3966 1.3909 1.3452 1.2495 1.1365 1.0642 1.0601 1.0674 0.9864 0.8719 0.9075 - 1.8682 2.0441 2.1351 2.1829 2.2164 2.2543 2.3045 2.3641 2.4216 2.4617 2.4703 2.4387 2.3673 2.2656 2.1507 2.0425 1.9586 1.9083 1.8898 1.8904 1.8901 1.8687 1.8134 1.7240 1.6148 1.5096 1.4319 1.3936 1.3875 1.3874 1.3614 1.2911 1.1885 1.0956 1.0554 1.0660 1.0583 0.9634 0.8687 0.9050 - 1.3701 1.5674 1.7312 1.8784 2.0115 2.1263 2.2154 2.2708 2.2874 2.2643 2.2069 2.1255 2.0347 1.9499 1.8841 1.8449 1.8317 1.8361 1.8439 1.8391 1.8087 1.7476 1.6611 1.5637 1.4748 1.4116 1.3814 1.3772 1.3786 1.3603 1.3053 1.2176 1.1248 1.0646 1.0557 1.0699 1.0405 0.9371 0.8680 0.9017 - 1.1860 1.4386 1.6468 1.8119 1.9300 1.9995 2.0229 2.0072 1.9629 1.9032 1.8415 1.7894 1.7553 1.7422 1.7475 1.7633 1.7783 1.7806 1.7608 1.7149 1.6460 1.5638 1.4827 1.4170 1.3765 1.3621 1.3643 1.3659 1.3479 1.2988 1.2217 1.1369 1.0732 1.0511 1.0625 1.0658 1.0121 0.9102 0.8707 0.8973 - 1.1731 1.3745 1.5142 1.6017 1.6448 1.6541 1.6419 1.6210 1.6022 1.5935 1.5987 1.6171 1.6439 1.6716 1.6913 1.6949 1.6770 1.6369 1.5784 1.5101 1.4428 1.3875 1.3519 1.3377 1.3401 1.3476 1.3459 1.3228 1.2731 1.2027 1.1283 1.0713 1.0474 1.0543 1.0668 1.0466 0.9738 0.8866 0.8770 0.8919 - 0.9506 1.0794 1.1686 1.2326 1.2811 1.3222 1.3618 1.4032 1.4467 1.4902 1.5294 1.5590 1.5742 1.5714 1.5499 1.5119 1.4626 1.4096 1.3610 1.3242 1.3034 1.2990 1.3065 1.3177 1.3223 1.3109 1.2782 1.2257 1.1618 1.1007 1.0574 1.0409 1.0481 1.0617 1.0552 1.0088 0.9308 0.8707 0.8864 0.8853 - 0.6915 0.8294 0.9486 1.0548 1.1490 1.2307 1.2985 1.3512 1.3876 1.4070 1.4098 1.3975 1.3732 1.3412 1.3070 1.2759 1.2528 1.2408 1.2408 1.2507 1.2657 1.2794 1.2845 1.2755 1.2493 1.2074 1.1556 1.1032 1.0608 1.0365 1.0328 1.0440 1.0563 1.0519 1.0180 0.9567 0.8924 0.8661 0.8969 0.8775 - 0.6582 0.8066 0.9287 1.0264 1.0998 1.1496 1.1782 1.1891 1.1868 1.1762 1.1620 1.1486 1.1399 1.1381 1.1446 1.1586 1.1779 1.1991 1.2177 1.2291 1.2296 1.2167 1.1908 1.1543 1.1126 1.0722 1.0401 1.0215 1.0182 1.0274 1.0414 1.0495 1.0409 1.0096 0.9589 0.9040 0.8688 0.8731 0.9058 0.8686 - 0.6206 0.7247 0.8010 0.8557 0.8931 0.9180 0.9351 0.9490 0.9636 0.9813 1.0035 1.0300 1.0593 1.0891 1.1164 1.1379 1.1510 1.1537 1.1455 1.1272 1.1011 1.0709 1.0410 1.0159 0.9994 0.9935 0.9982 1.0106 1.0254 1.0358 1.0350 1.0182 0.9852 0.9414 0.8980 0.8690 0.8659 0.8880 0.9097 0.8588 - 0.4514 0.5345 0.6045 0.6662 0.7222 0.7741 0.8228 0.8688 0.9117 0.9508 0.9847 1.0121 1.0315 1.0421 1.0437 1.0370 1.0237 1.0060 0.9871 0.9701 0.9576 0.9520 0.9539 0.9630 0.9773 0.9937 1.0081 1.0163 1.0148 1.0015 0.9768 0.9439 0.9086 0.8788 0.8620 0.8632 0.8805 0.9026 0.9059 0.8484 - 0.3856 0.4840 0.5714 0.6487 0.7154 0.7708 0.8150 0.8484 0.8718 0.8864 0.8934 0.8946 0.8916 0.8863 0.8808 0.8768 0.8762 0.8800 0.8888 0.9024 0.9198 0.9390 0.9577 0.9731 0.9829 0.9849 0.9782 0.9631 0.9414 0.9158 0.8903 0.8692 0.8564 0.8545 0.8637 0.8809 0.8991 0.9074 0.8928 0.8378 - 0.4079 0.4913 0.5579 0.6101 0.6493 0.6773 0.6965 0.7097 0.7194 0.7281 0.7376 0.7494 0.7641 0.7820 0.8029 0.8259 0.8498 0.8733 0.8948 0.9128 0.9259 0.9331 0.9338 0.9280 0.9166 0.9010 0.8833 0.8662 0.8520 0.8430 0.8406 0.8453 0.8562 0.8713 0.8872 0.8998 0.9043 0.8960 0.8715 0.8274 - 0.3277 0.3865 0.4348 0.4760 0.5125 0.5457 0.5774 0.6085 0.6398 0.6716 0.7036 0.7350 0.7649 0.7920 0.8153 0.8339 0.8472 0.8549 0.8573 0.8550 0.8491 0.8408 0.8316 0.8228 0.8159 0.8122 0.8124 0.8172 0.8263 0.8390 0.8539 0.8693 0.8829 0.8928 0.8973 0.8950 0.8854 0.8684 0.8453 0.8177 - 0.2565 0.3240 0.3861 0.4440 0.4974 0.5458 0.5889 0.6266 0.6589 0.6860 0.7078 0.7247 0.7368 0.7447 0.7489 0.7503 0.7499 0.7489 0.7483 0.7492 0.7523 0.7583 0.7672 0.7788 0.7929 0.8085 0.8249 0.8409 0.8556 0.8679 0.8768 0.8816 0.8820 0.8780 0.8701 0.8594 0.8467 0.8330 0.8197 0.8092 - 0.2881 0.3574 0.4163 0.4659 0.5063 0.5382 0.5624 0.5806 0.5942 0.6047 0.6136 0.6219 0.6307 0.6405 0.6518 0.6650 0.6801 0.6970 0.7154 0.7348 0.7548 0.7744 0.7931 0.8099 0.8243 0.8358 0.8441 0.8491 0.8508 0.8497 0.8461 0.8405 0.8336 0.8261 0.8187 0.8123 0.8070 0.8029 0.8004 0.8023 - 0.2699 0.3191 0.3590 0.3922 0.4204 0.4450 0.4676 0.4894 0.5115 0.5345 0.5587 0.5841 0.6102 0.6365 0.6623 0.6870 0.7098 0.7304 0.7482 0.7630 0.7749 0.7837 0.7897 0.7932 0.7944 0.7938 0.7920 0.7896 0.7869 0.7846 0.7827 0.7816 0.7813 0.7818 0.7833 0.7854 0.7878 0.7899 0.7917 0.7973 - 0.2060 0.2564 0.3033 0.3479 0.3904 0.4307 0.4687 0.5042 0.5373 0.5677 0.5952 0.6198 0.6411 0.6592 0.6740 0.6856 0.6945 0.7010 0.7057 0.7093 0.7122 0.7149 0.7178 0.7211 0.7252 0.7300 0.7356 0.7421 0.7492 0.7569 0.7648 0.7726 0.7800 0.7867 0.7923 0.7966 0.7989 0.7985 0.7951 0.7943 - 0.2249 0.2859 0.3406 0.3890 0.4308 0.4660 0.4949 0.5184 0.5373 0.5526 0.5653 0.5762 0.5860 0.5952 0.6044 0.6139 0.6240 0.6350 0.6470 0.6600 0.6739 0.6886 0.7037 0.7190 0.7342 0.7490 0.7631 0.7764 0.7887 0.8000 0.8099 0.8184 0.8253 0.8303 0.8333 0.8339 0.8310 0.8232 0.8091 0.7934 - 0.2468 0.2957 0.3354 0.3681 0.3949 0.4174 0.4368 0.4547 0.4723 0.4904 0.5095 0.5299 0.5516 0.5743 0.5975 0.6210 0.6442 0.6669 0.6887 0.7094 0.7288 0.7468 0.7634 0.7784 0.7918 0.8038 0.8145 0.8241 0.8327 0.8405 0.8475 0.8537 0.8590 0.8632 0.8661 0.8667 0.8631 0.8523 0.8292 0.7944 - 0.2018 0.2448 0.2840 0.3211 0.3570 0.3919 0.4261 0.4595 0.4921 0.5239 0.5545 0.5836 0.6108 0.6360 0.6588 0.6792 0.6973 0.7131 0.7272 0.7396 0.7507 0.7609 0.7702 0.7789 0.7871 0.7949 0.8024 0.8097 0.8171 0.8245 0.8320 0.8397 0.8477 0.8560 0.8646 0.8725 0.8773 0.8736 0.8503 0.7971 - 0.1998 0.2580 0.3124 0.3632 0.4095 0.4508 0.4870 0.5183 0.5453 0.5685 0.5887 0.6064 0.6224 0.6369 0.6504 0.6633 0.6758 0.6882 0.7006 0.7130 0.7255 0.7379 0.7500 0.7617 0.7727 0.7827 0.7917 0.7997 0.8065 0.8124 0.8175 0.8223 0.8274 0.8340 0.8432 0.8558 0.8704 0.8804 0.8678 0.8010 - 0.2488 0.3075 0.3570 0.3987 0.4332 0.4617 0.4858 0.5069 0.5265 0.5459 0.5658 0.5868 0.6090 0.6322 0.6562 0.6806 0.7049 0.7288 0.7519 0.7739 0.7945 0.8135 0.8305 0.8453 0.8577 0.8676 0.8746 0.8788 0.8798 0.8777 0.8724 0.8644 0.8547 0.8454 0.8395 0.8413 0.8539 0.8742 0.8788 0.8060 - 0.2484 0.2972 0.3393 0.3778 0.4142 0.4497 0.4852 0.5212 0.5578 0.5950 0.6323 0.6692 0.7052 0.7398 0.7723 0.8026 0.8304 0.8556 0.8785 0.8991 0.9177 0.9342 0.9488 0.9614 0.9720 0.9803 0.9862 0.9892 0.9886 0.9838 0.9736 0.9572 0.9344 0.9062 0.8763 0.8522 0.8447 0.8615 0.8828 0.8114 - 0.2372 0.2996 0.3601 0.4195 0.4773 0.5324 0.5840 0.6316 0.6749 0.7142 0.7496 0.7815 0.8102 0.8363 0.8600 0.8816 0.9015 0.9199 0.9371 0.9532 0.9683 0.9823 0.9952 1.0070 1.0175 1.0269 1.0349 1.0415 1.0464 1.0485 1.0464 1.0375 1.0187 0.9873 0.9431 0.8928 0.8538 0.8507 0.8810 0.8170 - 0.2938 0.3767 0.4525 0.5205 0.5798 0.6303 0.6729 0.7089 0.7402 0.7685 0.7954 0.8216 0.8479 0.8742 0.9003 0.9260 0.9506 0.9739 0.9953 1.0147 1.0317 1.0461 1.0577 1.0663 1.0720 1.0749 1.0756 1.0750 1.0741 1.0738 1.0743 1.0739 1.0683 1.0501 1.0114 0.9499 0.8816 0.8473 0.8755 0.8225 - 0.3650 0.4469 0.5152 0.5727 0.6216 0.6645 0.7040 0.7421 0.7805 0.8198 0.8599 0.9001 0.9396 0.9773 1.0123 1.0442 1.0727 1.0978 1.1198 1.1388 1.1551 1.1685 1.1787 1.1851 1.1871 1.1838 1.1750 1.1608 1.1426 1.1231 1.1060 1.0945 1.0889 1.0822 1.0598 1.0052 0.9205 0.8528 0.8687 0.8276 - 0.3905 0.4676 0.5350 0.5976 0.6579 0.7167 0.7741 0.8294 0.8813 0.9288 0.9709 1.0073 1.0380 1.0636 1.0851 1.1034 1.1198 1.1351 1.1502 1.1655 1.1812 1.1975 1.2140 1.2301 1.2445 1.2553 1.2596 1.2543 1.2372 1.2081 1.1714 1.1355 1.1099 1.0975 1.0859 1.0470 0.9608 0.8655 0.8622 0.8321 - 0.4026 0.4928 0.5782 0.6604 0.7374 0.8065 0.8650 0.9118 0.9473 0.9731 0.9921 1.0074 1.0216 1.0369 1.0541 1.0733 1.0936 1.1138 1.1326 1.1491 1.1629 1.1746 1.1855 1.1978 1.2136 1.2339 1.2569 1.2775 1.2874 1.2781 1.2458 1.1965 1.1465 1.1135 1.0990 1.0736 0.9954 0.8817 0.8570 0.8359 - 0.4357 0.5438 0.6423 0.7288 0.7992 0.8516 0.8872 0.9104 0.9276 0.9454 0.9694 1.0026 1.0453 1.0952 1.1485 1.2005 1.2472 1.2855 1.3130 1.3284 1.3309 1.3206 1.2994 1.2720 1.2461 1.2304 1.2320 1.2515 1.2800 1.3001 1.2937 1.2532 1.1911 1.1359 1.1080 1.0886 1.0215 0.8979 0.8534 0.8389 - 0.4750 0.5889 0.6836 0.7569 0.8081 0.8416 0.8655 0.8904 0.9256 0.9771 1.0457 1.1271 1.2132 1.2950 1.3650 1.4197 1.4598 1.4892 1.5119 1.5295 1.5390 1.5342 1.5079 1.4576 1.3894 1.3186 1.2652 1.2450 1.2595 1.2912 1.3096 1.2892 1.2292 1.1595 1.1165 1.0966 1.0387 0.9111 0.8512 0.8411 - 0.4996 0.6103 0.6956 0.7561 0.7965 0.8266 0.8591 0.9059 0.9739 1.0628 1.1644 1.2649 1.3489 1.4045 1.4277 1.4241 1.4080 1.3977 1.4082 1.4454 1.5016 1.5576 1.5892 1.5771 1.5171 1.4247 1.3307 1.2679 1.2540 1.2794 1.3096 1.3056 1.2526 1.1768 1.1232 1.1007 1.0483 0.9196 0.8502 0.8424 - 0.5070 0.6154 0.6966 0.7529 0.7912 0.8232 0.8627 0.9210 1.0028 1.1041 1.2122 1.3093 1.3775 1.4050 1.3909 1.3470 1.2954 1.2618 1.2672 1.3189 1.4066 1.5043 1.5779 1.5991 1.5573 1.4665 1.3615 1.2825 1.2554 1.2754 1.3081 1.3098 1.2603 1.1830 1.1257 1.1019 1.0514 0.9225 0.8498 0.8428 - 2.1764 2.5345 2.8817 3.1795 3.3751 3.4366 3.3677 3.2053 3.0052 2.8236 2.6993 2.6439 2.6415 2.6574 2.6521 2.5973 2.4863 2.3359 2.1785 2.0488 1.9679 1.9345 1.9246 1.9034 1.8427 1.7362 1.6052 1.4880 1.4175 1.3975 1.3960 1.3637 1.2740 1.1544 1.0732 1.0659 1.0646 0.9670 0.8763 0.8830 - 2.1436 2.5252 2.8820 3.1741 3.3532 3.3955 3.3121 3.1446 2.9497 2.7806 2.6714 2.6288 2.6335 2.6496 2.6394 2.5777 2.4615 2.3097 2.1557 2.0325 1.9587 1.9301 1.9214 1.8980 1.8337 1.7247 1.5941 1.4801 1.4136 1.3963 1.3945 1.3600 1.2686 1.1502 1.0720 1.0665 1.0638 0.9650 0.8763 0.8826 - 2.0941 2.5224 2.8837 3.1414 3.2653 3.2543 3.1380 2.9672 2.7964 2.6683 2.6025 2.5926 2.6116 2.6231 2.5956 2.5140 2.3848 2.2329 2.0917 1.9889 1.9350 1.9185 1.9109 1.8797 1.8048 1.6897 1.5617 1.4581 1.4036 1.3930 1.3895 1.3480 1.2523 1.1377 1.0688 1.0682 1.0613 0.9592 0.8766 0.8813 - 2.1066 2.5383 2.8465 3.0170 3.0521 2.9797 2.8466 2.7039 2.5928 2.5349 2.5284 2.5519 2.5737 2.5636 2.5038 2.3947 2.2551 2.1143 2.0012 1.9326 1.9063 1.9019 1.8891 1.8420 1.7514 1.6310 1.5123 1.4276 1.3916 1.3886 1.3792 1.3258 1.2248 1.1185 1.0649 1.0707 1.0561 0.9495 0.8773 0.8792 - 2.1269 2.4647 2.6519 2.7114 2.6768 2.5923 2.5021 2.4392 2.4187 2.4363 2.4723 2.4999 2.4942 2.4415 2.3433 2.2160 2.0857 1.9782 1.9102 1.8825 1.8796 1.8758 1.8456 1.7751 1.6696 1.5524 1.4543 1.3976 1.3820 1.3821 1.3599 1.2908 1.1870 1.0957 1.0621 1.0731 1.0467 0.9364 0.8788 0.8763 - 1.9480 2.1478 2.2338 2.2511 2.2387 2.2280 2.2386 2.2743 2.3257 2.3741 2.3993 2.3855 2.3275 2.2321 2.1169 2.0046 1.9161 1.8633 1.8450 1.8471 1.8474 1.8241 1.7647 1.6719 1.5637 1.4662 1.4016 1.3765 1.3756 1.3684 1.3258 1.2415 1.1424 1.0741 1.0623 1.0737 1.0316 0.9208 0.8817 0.8725 - 1.5248 1.6753 1.7778 1.8646 1.9512 2.0412 2.1289 2.2024 2.2482 2.2563 2.2232 2.1542 2.0623 1.9653 1.8817 1.8245 1.7984 1.7972 1.8061 1.8063 1.7816 1.7241 1.6386 1.5409 1.4529 1.3930 1.3676 1.3663 1.3650 1.3376 1.2719 1.1804 1.0980 1.0592 1.0656 1.0693 1.0095 0.9042 0.8862 0.8677 - 1.1707 1.3797 1.5637 1.7283 1.8679 1.9743 2.0401 2.0624 2.0436 1.9924 1.9218 1.8474 1.7837 1.7414 1.7243 1.7287 1.7439 1.7553 1.7488 1.7150 1.6532 1.5717 1.4860 1.4137 1.3679 1.3511 1.3534 1.3549 1.3344 1.2802 1.1993 1.1169 1.0639 1.0549 1.0691 1.0559 0.9803 0.8891 0.8923 0.8621 - 1.1036 1.3386 1.5244 1.6611 1.7472 1.7851 1.7828 1.7522 1.7075 1.6627 1.6292 1.6139 1.6181 1.6373 1.6623 1.6816 1.6840 1.6626 1.6160 1.5499 1.4756 1.4072 1.3571 1.3316 1.3284 1.3362 1.3381 1.3181 1.2689 1.1966 1.1208 1.0661 1.0481 1.0593 1.0663 1.0300 0.9464 0.8783 0.8995 0.8558 - 1.0621 1.2278 1.3370 1.4015 1.4317 1.4398 1.4380 1.4372 1.4448 1.4642 1.4941 1.5294 1.5624 1.5846 1.5889 1.5714 1.5329 1.4787 1.4182 1.3621 1.3201 1.2978 1.2948 1.3042 1.3142 1.3116 1.2867 1.2375 1.1719 1.1062 1.0590 1.0417 1.0503 1.0627 1.0485 0.9910 0.9125 0.8742 0.9066 0.8487 - 0.8222 0.9361 1.0205 1.0885 1.1480 1.2040 1.2594 1.3140 1.3655 1.4098 1.4424 1.4592 1.4579 1.4386 1.4047 1.3619 1.3179 1.2804 1.2555 1.2461 1.2511 1.2647 1.2783 1.2822 1.2689 1.2352 1.1845 1.1266 1.0749 1.0418 1.0330 1.0433 1.0563 1.0501 1.0102 0.9438 0.8856 0.8782 0.9118 0.8412 - 0.6234 0.7582 0.8775 0.9845 1.0783 1.1568 1.2182 1.2610 1.2853 1.2919 1.2835 1.2638 1.2379 1.2112 1.1892 1.1760 1.1739 1.1827 1.1993 1.2184 1.2335 1.2380 1.2273 1.2002 1.1595 1.1121 1.0674 1.0347 1.0200 1.0235 1.0377 1.0491 1.0430 1.0103 0.9556 0.8997 0.8723 0.8890 0.9130 0.8335 - 0.6165 0.7528 0.8629 0.9486 1.0100 1.0490 1.0687 1.0740 1.0701 1.0623 1.0555 1.0536 1.0591 1.0725 1.0930 1.1177 1.1427 1.1633 1.1752 1.1752 1.1619 1.1364 1.1023 1.0653 1.0319 1.0085 0.9987 1.0029 1.0168 1.0319 1.0383 1.0272 0.9953 0.9482 0.9008 0.8721 0.8754 0.9020 0.9080 0.8258 - 0.5632 0.6547 0.7215 0.7699 0.8046 0.8303 0.8517 0.8726 0.8960 0.9232 0.9542 0.9876 1.0208 1.0508 1.0743 1.0886 1.0922 1.0849 1.0680 1.0444 1.0183 0.9940 0.9759 0.9671 0.9687 0.9795 0.9957 1.0115 1.0204 1.0168 0.9977 0.9646 0.9244 0.8879 0.8670 0.8691 0.8902 0.9105 0.8957 0.8186 - 0.4078 0.4862 0.5544 0.6167 0.6747 0.7294 0.7809 0.8286 0.8717 0.9090 0.9392 0.9609 0.9736 0.9773 0.9729 0.9623 0.9481 0.9334 0.9213 0.9147 0.9151 0.9230 0.9373 0.9555 0.9738 0.9882 0.9947 0.9905 0.9749 0.9495 0.9186 0.8886 0.8665 0.8583 0.8659 0.8853 0.9050 0.9077 0.8765 0.8123 - 0.3618 0.4557 0.5393 0.6132 0.6762 0.7276 0.7673 0.7960 0.8148 0.8252 0.8293 0.8290 0.8267 0.8245 0.8244 0.8280 0.8363 0.8497 0.8674 0.8883 0.9100 0.9300 0.9457 0.9545 0.9550 0.9467 0.9307 0.9094 0.8864 0.8658 0.8517 0.8471 0.8530 0.8676 0.8864 0.9021 0.9058 0.8901 0.8529 0.8072 - 0.3806 0.4577 0.5188 0.5663 0.6017 0.6270 0.6449 0.6581 0.6694 0.6811 0.6949 0.7118 0.7323 0.7560 0.7819 0.8087 0.8346 0.8578 0.8768 0.8901 0.8969 0.8970 0.8909 0.8798 0.8655 0.8505 0.8375 0.8287 0.8262 0.8307 0.8419 0.8578 0.8753 0.8904 0.8992 0.8980 0.8848 0.8602 0.8289 0.8037 - 0.3038 0.3584 0.4038 0.4435 0.4797 0.5137 0.5470 0.5804 0.6141 0.6481 0.6816 0.7137 0.7431 0.7686 0.7890 0.8038 0.8127 0.8160 0.8146 0.8096 0.8028 0.7958 0.7902 0.7875 0.7886 0.7943 0.8045 0.8185 0.8351 0.8525 0.8685 0.8808 0.8875 0.8871 0.8795 0.8654 0.8469 0.8268 0.8095 0.8020 - 0.2407 0.3049 0.3649 0.4213 0.4737 0.5213 0.5635 0.6001 0.6309 0.6560 0.6756 0.6900 0.6999 0.7058 0.7089 0.7102 0.7111 0.7126 0.7161 0.7223 0.7316 0.7443 0.7599 0.7777 0.7965 0.8151 0.8323 0.8468 0.8576 0.8639 0.8655 0.8623 0.8548 0.8442 0.8319 0.8198 0.8094 0.8021 0.7991 0.8022 - 0.2703 0.3364 0.3930 0.4405 0.4791 0.5093 0.5322 0.5492 0.5620 0.5723 0.5816 0.5912 0.6019 0.6146 0.6294 0.6466 0.6658 0.6867 0.7087 0.7309 0.7525 0.7726 0.7903 0.8048 0.8156 0.8225 0.8257 0.8254 0.8222 0.8171 0.8108 0.8042 0.7981 0.7933 0.7904 0.7900 0.7919 0.7955 0.8000 0.8044 - 0.2560 0.3026 0.3404 0.3718 0.3987 0.4226 0.4450 0.4673 0.4904 0.5148 0.5408 0.5680 0.5959 0.6237 0.6505 0.6755 0.6979 0.7172 0.7330 0.7453 0.7542 0.7599 0.7629 0.7638 0.7631 0.7616 0.7600 0.7590 0.7590 0.7603 0.7632 0.7676 0.7734 0.7802 0.7878 0.7957 0.8031 0.8088 0.8116 0.8084 - 0.1960 0.2431 0.2872 0.3299 0.3712 0.4109 0.4488 0.4846 0.5178 0.5483 0.5757 0.5998 0.6203 0.6372 0.6506 0.6608 0.6683 0.6738 0.6781 0.6817 0.6855 0.6899 0.6954 0.7021 0.7102 0.7197 0.7304 0.7421 0.7545 0.7673 0.7801 0.7923 0.8037 0.8139 0.8227 0.8297 0.8343 0.8352 0.8304 0.8139 - 0.2087 0.2672 0.3203 0.3679 0.4094 0.4445 0.4734 0.4967 0.5154 0.5303 0.5427 0.5534 0.5632 0.5729 0.5830 0.5940 0.6062 0.6199 0.6350 0.6514 0.6690 0.6874 0.7062 0.7250 0.7433 0.7608 0.7772 0.7925 0.8064 0.8189 0.8300 0.8396 0.8477 0.8545 0.8599 0.8637 0.8651 0.8622 0.8514 0.8205 - 0.2344 0.2824 0.3215 0.3535 0.3796 0.4013 0.4200 0.4373 0.4545 0.4727 0.4923 0.5137 0.5367 0.5611 0.5862 0.6117 0.6369 0.6613 0.6845 0.7063 0.7264 0.7447 0.7611 0.7756 0.7884 0.7996 0.8094 0.8183 0.8263 0.8337 0.8407 0.8473 0.8538 0.8602 0.8666 0.8727 0.8775 0.8784 0.8692 0.8279 - 0.1966 0.2364 0.2722 0.3064 0.3397 0.3728 0.4058 0.4389 0.4717 0.5041 0.5355 0.5656 0.5937 0.6195 0.6427 0.6632 0.6811 0.6966 0.7101 0.7219 0.7325 0.7423 0.7514 0.7600 0.7683 0.7764 0.7844 0.7922 0.7999 0.8075 0.8149 0.8223 0.8298 0.8377 0.8467 0.8571 0.8687 0.8794 0.8804 0.8356 - 0.1841 0.2377 0.2890 0.3380 0.3838 0.4255 0.4626 0.4951 0.5231 0.5473 0.5682 0.5864 0.6025 0.6172 0.6310 0.6443 0.6576 0.6711 0.6851 0.6996 0.7145 0.7298 0.7450 0.7598 0.7740 0.7872 0.7991 0.8094 0.8180 0.8246 0.8293 0.8322 0.8336 0.8344 0.8362 0.8411 0.8517 0.8686 0.8836 0.8433 - 0.2283 0.2863 0.3363 0.3789 0.4144 0.4435 0.4677 0.4886 0.5077 0.5265 0.5460 0.5670 0.5896 0.6139 0.6396 0.6662 0.6934 0.7205 0.7471 0.7727 0.7971 0.8200 0.8409 0.8598 0.8763 0.8903 0.9016 0.9099 0.9150 0.9166 0.9143 0.9077 0.8968 0.8822 0.8657 0.8511 0.8450 0.8552 0.8801 0.8505 - 0.2398 0.2869 0.3266 0.3619 0.3946 0.4265 0.4588 0.4922 0.5273 0.5639 0.6017 0.6400 0.6779 0.7148 0.7500 0.7828 0.8131 0.8407 0.8658 0.8885 0.9090 0.9276 0.9443 0.9594 0.9728 0.9844 0.9942 1.0020 1.0073 1.0095 1.0077 1.0004 0.9860 0.9631 0.9314 0.8940 0.8604 0.8484 0.8726 0.8571 - 0.2225 0.2763 0.3289 0.3818 0.4350 0.4876 0.5387 0.5873 0.6329 0.6749 0.7132 0.7479 0.7791 0.8072 0.8326 0.8558 0.8771 0.8969 0.9156 0.9334 0.9503 0.9662 0.9811 0.9948 1.0071 1.0180 1.0275 1.0358 1.0429 1.0488 1.0529 1.0538 1.0488 1.0336 1.0033 0.9554 0.8969 0.8536 0.8642 0.8629 - 0.2549 0.3304 0.4024 0.4699 0.5311 0.5848 0.6309 0.6702 0.7039 0.7339 0.7615 0.7883 0.8149 0.8419 0.8693 0.8968 0.9241 0.9507 0.9760 0.9997 1.0212 1.0402 1.0564 1.0693 1.0787 1.0845 1.0869 1.0863 1.0835 1.0800 1.0771 1.0757 1.0751 1.0711 1.0544 1.0136 0.9443 0.8707 0.8573 0.8678 - 0.3228 0.4044 0.4745 0.5340 0.5840 0.6264 0.6639 0.6993 0.7347 0.7716 0.8104 0.8508 0.8918 0.9322 0.9708 1.0067 1.0393 1.0685 1.0943 1.1171 1.1371 1.1547 1.1696 1.1817 1.1904 1.1949 1.1943 1.1876 1.1744 1.1555 1.1333 1.1120 1.0964 1.0881 1.0804 1.0549 0.9903 0.8958 0.8534 0.8718 - 0.3624 0.4366 0.4992 0.5548 0.6069 0.6580 0.7096 0.7620 0.8144 0.8652 0.9127 0.9553 0.9922 1.0230 1.0484 1.0692 1.0869 1.1026 1.1174 1.1321 1.1472 1.1629 1.1792 1.1961 1.2134 1.2302 1.2448 1.2543 1.2546 1.2422 1.2156 1.1779 1.1382 1.1085 1.0935 1.0782 1.0271 0.9237 0.8526 0.8749 - 0.3720 0.4489 0.5206 0.5911 0.6612 0.7292 0.7927 0.8487 0.8952 0.9316 0.9586 0.9782 0.9934 1.0071 1.0218 1.0391 1.0590 1.0809 1.1032 1.1241 1.1420 1.1563 1.1671 1.1760 1.1855 1.1986 1.2172 1.2408 1.2646 1.2797 1.2755 1.2457 1.1952 1.1418 1.1068 1.0902 1.0526 0.9497 0.8543 0.8773 - 0.3853 0.4767 0.5650 0.6498 0.7272 0.7927 0.8433 0.8789 0.9021 0.9182 0.9333 0.9535 0.9829 1.0228 1.0720 1.1267 1.1821 1.2335 1.2769 1.3094 1.3293 1.3354 1.3277 1.3075 1.2789 1.2491 1.2278 1.2237 1.2396 1.2681 1.2910 1.2872 1.2462 1.1810 1.1244 1.0975 1.0684 0.9710 0.8573 0.8791 - 0.4091 0.5130 0.6093 0.6940 0.7621 0.8109 0.8424 0.8627 0.8810 0.9071 0.9484 1.0079 1.0834 1.1682 1.2529 1.3287 1.3898 1.4350 1.4672 1.4911 1.5097 1.5223 1.5232 1.5049 1.4622 1.3983 1.3264 1.2675 1.2403 1.2502 1.2811 1.3004 1.2786 1.2145 1.1429 1.1032 1.0774 0.9863 0.8604 0.8802 - 0.4297 0.5385 0.6341 0.7119 0.7685 0.8052 0.8291 0.8514 0.8843 0.9369 1.0123 1.1061 1.2068 1.2989 1.3679 1.4054 1.4123 1.3994 1.3842 1.3845 1.4109 1.4611 1.5195 1.5616 1.5643 1.5175 1.4318 1.3365 1.2674 1.2474 1.2702 1.3001 1.2938 1.2354 1.1566 1.1073 1.0819 0.9954 0.8627 0.8809 - 0.4372 0.5468 0.6410 0.7154 0.7677 0.8011 0.8246 0.8510 0.8926 0.9574 1.0456 1.1488 1.2511 1.3338 1.3812 1.3864 1.3552 1.3055 1.2626 1.2510 1.2845 1.3602 1.4564 1.5399 1.5778 1.5524 1.4715 1.3673 1.2828 1.2495 1.2666 1.2987 1.2979 1.2423 1.1615 1.1089 1.0833 0.9984 0.8635 0.8811 - 1.9552 2.3731 2.6982 2.8969 2.9556 2.8943 2.7602 2.6099 2.4916 2.4309 2.4260 2.4528 2.4755 2.4619 2.3950 2.2797 2.1398 2.0081 1.9127 1.8652 1.8554 1.8557 1.8342 1.7700 1.6648 1.5432 1.4408 1.3837 1.3710 1.3719 1.3439 1.2654 1.1591 1.0810 1.0674 1.0785 1.0227 0.9046 0.8958 0.8352 - 1.9596 2.3768 2.6897 2.8704 2.9123 2.8414 2.7070 2.5650 2.4596 2.4119 2.4162 2.4462 2.4665 2.4471 2.3742 2.2555 2.1162 1.9890 1.9001 1.8584 1.8516 1.8517 1.8274 1.7600 1.6532 1.5329 1.4340 1.3808 1.3703 1.3705 1.3401 1.2597 1.1541 1.0789 1.0676 1.0782 1.0207 0.9034 0.8964 0.8348 - 1.9797 2.3778 2.6449 2.7716 2.7709 2.6815 2.5561 2.4444 2.3785 2.3662 2.3920 2.4258 2.4351 2.3973 2.3081 2.1823 2.0483 1.9363 1.8667 1.8408 1.8412 1.8386 1.8053 1.7287 1.6185 1.5031 1.4154 1.3735 1.3683 1.3658 1.3280 1.2427 1.1397 1.0731 1.0683 1.0772 1.0146 0.9000 0.8981 0.8336 - 1.9947 2.3240 2.5049 2.5573 2.5164 2.4299 2.3446 2.2932 2.2876 2.3180 2.3598 2.3835 2.3659 2.2984 2.1898 2.0632 1.9470 1.8646 1.8250 1.8193 1.8242 1.8116 1.7618 1.6725 1.5613 1.4582 1.3899 1.3649 1.3653 1.3558 1.3058 1.2143 1.1179 1.0656 1.0697 1.0742 1.0039 0.8947 0.9009 0.8316 - 1.9039 2.1214 2.2119 2.2195 2.1878 2.1556 2.1486 2.1745 2.2235 2.2746 2.3036 2.2921 2.2340 2.1375 2.0230 1.9155 1.8366 1.7963 1.7892 1.7967 1.7941 1.7608 1.6894 1.5902 1.4870 1.4067 1.3654 1.3581 1.3594 1.3365 1.2710 1.1758 1.0921 1.0591 1.0717 1.0676 0.9880 0.8886 0.9046 0.8290 - 1.6150 1.7529 1.8220 1.8649 1.9089 1.9673 2.0394 2.1129 2.1702 2.1947 2.1767 2.1171 2.0277 1.9278 1.8389 1.7775 1.7499 1.7499 1.7609 1.7618 1.7350 1.6735 1.5849 1.4886 1.4085 1.3615 1.3486 1.3525 1.3448 1.3021 1.2222 1.1307 1.0678 1.0563 1.0730 1.0550 0.9671 0.8829 0.9089 0.8258 - 1.2417 1.3984 1.5323 1.6610 1.7853 1.8971 1.9840 2.0347 2.0430 2.0103 1.9459 1.8655 1.7873 1.7271 1.6945 1.6893 1.7021 1.7170 1.7166 1.6882 1.6290 1.5472 1.4603 1.3883 1.3456 1.3338 1.3395 1.3395 1.3115 1.2475 1.1619 1.0864 1.0511 1.0583 1.0705 1.0341 0.9423 0.8793 0.9132 0.8221 - 1.0425 1.2607 1.4512 1.6117 1.7336 1.8102 1.8400 1.8280 1.7853 1.7270 1.6691 1.6252 1.6035 1.6052 1.6238 1.6472 1.6610 1.6530 1.6172 1.5559 1.4799 1.4053 1.3478 1.3172 1.3125 1.3216 1.3249 1.3040 1.2510 1.1749 1.0998 1.0528 1.0461 1.0623 1.0595 1.0038 0.9164 0.8793 0.9166 0.8182 - 1.0354 1.2428 1.3963 1.4981 1.5515 1.5645 1.5495 1.5211 1.4933 1.4771 1.4781 1.4964 1.5260 1.5574 1.5791 1.5817 1.5597 1.5144 1.4529 1.3875 1.3314 1.2949 1.2819 1.2877 1.2998 1.3023 1.2817 1.2336 1.1661 1.0981 1.0514 1.0383 1.0510 1.0609 1.0350 0.9655 0.8934 0.8840 0.9178 0.8142 - 0.9477 1.0808 1.1655 1.2158 1.2438 1.2612 1.2781 1.3013 1.3336 1.3732 1.4150 1.4513 1.4747 1.4793 1.4626 1.4269 1.3784 1.3267 1.2821 1.2525 1.2418 1.2477 1.2622 1.2735 1.2699 1.2440 1.1962 1.1358 1.0785 1.0404 1.0300 1.0415 1.0548 1.0439 0.9951 0.9246 0.8785 0.8931 0.9155 0.8104 - 0.7103 0.8158 0.9010 0.9768 1.0481 1.1167 1.1821 1.2414 1.2907 1.3262 1.3445 1.3446 1.3278 1.2982 1.2622 1.2272 1.2003 1.1863 1.1870 1.1995 1.2177 1.2327 1.2359 1.2211 1.1873 1.1394 1.0876 1.0445 1.0206 1.0190 1.0331 1.0467 1.0410 1.0045 0.9447 0.8900 0.8753 0.9042 0.9083 0.8072 - 0.5716 0.7039 0.8218 0.9263 1.0151 1.0853 1.1355 1.1654 1.1766 1.1725 1.1575 1.1374 1.1178 1.1040 1.0995 1.1059 1.1219 1.1438 1.1659 1.1818 1.1857 1.1742 1.1474 1.1091 1.0668 1.0295 1.0054 0.9988 1.0081 1.0250 1.0365 1.0297 0.9981 0.9475 0.8968 0.8713 0.8839 0.9131 0.8953 0.8048 - 0.5790 0.7024 0.7994 0.8721 0.9217 0.9508 0.9641 0.9671 0.9656 0.9649 0.9690 0.9805 0.9998 1.0255 1.0544 1.0823 1.1045 1.1169 1.1168 1.1038 1.0797 1.0489 1.0172 0.9909 0.9754 0.9732 0.9831 1.0001 1.0157 1.0208 1.0083 0.9769 0.9333 0.8914 0.8679 0.8728 0.8988 0.9144 0.8771 0.8035 - 0.5101 0.5905 0.6493 0.6933 0.7272 0.7557 0.7826 0.8112 0.8429 0.8778 0.9145 0.9506 0.9829 1.0082 1.0240 1.0288 1.0228 1.0078 0.9872 0.9653 0.9466 0.9351 0.9331 0.9410 0.9565 0.9752 0.9912 0.9986 0.9928 0.9725 0.9406 0.9046 0.8745 0.8603 0.8667 0.8889 0.9097 0.9039 0.8551 0.8037 - 0.3704 0.4454 0.5126 0.5757 0.6355 0.6921 0.7446 0.7920 0.8329 0.8661 0.8904 0.9054 0.9112 0.9092 0.9014 0.8905 0.8797 0.8723 0.8708 0.8764 0.8892 0.9076 0.9286 0.9482 0.9622 0.9672 0.9612 0.9444 0.9196 0.8918 0.8674 0.8525 0.8514 0.8641 0.8852 0.9037 0.9058 0.8808 0.8326 0.8053 - 0.3416 0.4311 0.5109 0.5807 0.6393 0.6860 0.7207 0.7444 0.7588 0.7659 0.7682 0.7684 0.7689 0.7718 0.7788 0.7908 0.8078 0.8291 0.8527 0.8764 0.8974 0.9131 0.9213 0.9208 0.9119 0.8961 0.8765 0.8569 0.8416 0.8341 0.8364 0.8482 0.8665 0.8858 0.8991 0.8993 0.8821 0.8495 0.8138 0.8087 - 0.3562 0.4273 0.4832 0.5262 0.5580 0.5810 0.5980 0.6120 0.6255 0.6407 0.6591 0.6812 0.7068 0.7350 0.7640 0.7921 0.8171 0.8372 0.8512 0.8582 0.8583 0.8523 0.8421 0.8297 0.8179 0.8093 0.8060 0.8093 0.8194 0.8352 0.8540 0.8721 0.8856 0.8907 0.8852 0.8688 0.8446 0.8190 0.8025 0.8136 - 0.2826 0.3334 0.3763 0.4147 0.4507 0.4857 0.5205 0.5558 0.5914 0.6267 0.6607 0.6922 0.7198 0.7424 0.7591 0.7696 0.7743 0.7740 0.7704 0.7652 0.7604 0.7577 0.7587 0.7642 0.7746 0.7892 0.8070 0.8262 0.8445 0.8598 0.8698 0.8731 0.8690 0.8582 0.8424 0.8247 0.8092 0.8000 0.8015 0.8201 - 0.2267 0.2880 0.3459 0.4008 0.4521 0.4986 0.5397 0.5748 0.6037 0.6266 0.6437 0.6557 0.6635 0.6682 0.6710 0.6734 0.6768 0.6823 0.6909 0.7030 0.7187 0.7373 0.7579 0.7790 0.7992 0.8169 0.8307 0.8398 0.8436 0.8424 0.8367 0.8277 0.8170 0.8063 0.7977 0.7929 0.7933 0.7995 0.8112 0.8277 - 0.2545 0.3178 0.3721 0.4176 0.4544 0.4830 0.5044 0.5203 0.5324 0.5427 0.5526 0.5636 0.5767 0.5923 0.6106 0.6314 0.6543 0.6783 0.7025 0.7258 0.7471 0.7655 0.7801 0.7905 0.7965 0.7984 0.7968 0.7928 0.7875 0.7821 0.7777 0.7752 0.7754 0.7785 0.7847 0.7937 0.8049 0.8172 0.8289 0.8362 - 0.2437 0.2881 0.3238 0.3536 0.3792 0.4023 0.4244 0.4470 0.4709 0.4966 0.5241 0.5528 0.5820 0.6106 0.6377 0.6621 0.6832 0.7005 0.7138 0.7231 0.7290 0.7321 0.7331 0.7329 0.7324 0.7325 0.7339 0.7372 0.7427 0.7505 0.7604 0.7720 0.7848 0.7981 0.8115 0.8242 0.8356 0.8447 0.8501 0.8450 - 0.1875 0.2313 0.2728 0.3135 0.3534 0.3925 0.4301 0.4658 0.4992 0.5296 0.5567 0.5800 0.5995 0.6151 0.6271 0.6360 0.6425 0.6476 0.6520 0.6567 0.6625 0.6698 0.6790 0.6903 0.7034 0.7181 0.7341 0.7509 0.7679 0.7847 0.8007 0.8155 0.8288 0.8405 0.8506 0.8590 0.8655 0.8694 0.8691 0.8538 - 0.1941 0.2501 0.3016 0.3484 0.3897 0.4247 0.4536 0.4768 0.4952 0.5099 0.5219 0.5323 0.5422 0.5523 0.5635 0.5761 0.5906 0.6070 0.6253 0.6451 0.6661 0.6877 0.7094 0.7305 0.7506 0.7693 0.7863 0.8015 0.8149 0.8266 0.8367 0.8454 0.8530 0.8597 0.8659 0.8717 0.8770 0.8811 0.8817 0.8621 - 0.2224 0.2700 0.3088 0.3405 0.3660 0.3869 0.4049 0.4214 0.4381 0.4561 0.4759 0.4979 0.5220 0.5478 0.5746 0.6016 0.6283 0.6540 0.6780 0.7001 0.7201 0.7377 0.7531 0.7664 0.7777 0.7874 0.7959 0.8035 0.8104 0.8170 0.8234 0.8297 0.8361 0.8428 0.8500 0.8581 0.8671 0.8770 0.8854 0.8695 - 0.1928 0.2299 0.2628 0.2940 0.3246 0.3555 0.3870 0.4192 0.4519 0.4846 0.5167 0.5475 0.5764 0.6027 0.6262 0.6467 0.6643 0.6793 0.6922 0.7035 0.7138 0.7234 0.7328 0.7421 0.7515 0.7610 0.7706 0.7801 0.7895 0.7985 0.8069 0.8144 0.8212 0.8273 0.8333 0.8402 0.8494 0.8630 0.8812 0.8759 - 0.1717 0.2204 0.2681 0.3147 0.3594 0.4011 0.4390 0.4726 0.5019 0.5272 0.5489 0.5676 0.5839 0.5987 0.6127 0.6264 0.6404 0.6551 0.6709 0.6877 0.7055 0.7240 0.7429 0.7618 0.7801 0.7974 0.8133 0.8274 0.8394 0.8489 0.8557 0.8594 0.8599 0.8573 0.8523 0.8467 0.8439 0.8500 0.8718 0.8810 - 0.2078 0.2648 0.3153 0.3591 0.3959 0.4263 0.4511 0.4720 0.4907 0.5088 0.5276 0.5480 0.5705 0.5953 0.6221 0.6506 0.6801 0.7100 0.7397 0.7687 0.7966 0.8229 0.8473 0.8697 0.8897 0.9073 0.9223 0.9346 0.9441 0.9505 0.9532 0.9517 0.9450 0.9322 0.9132 0.8888 0.8635 0.8482 0.8615 0.8849 - 0.2303 0.2772 0.3160 0.3494 0.3792 0.4076 0.4362 0.4664 0.4990 0.5341 0.5715 0.6103 0.6496 0.6885 0.7259 0.7611 0.7937 0.8234 0.8503 0.8746 0.8966 0.9166 0.9349 0.9515 0.9666 0.9802 0.9924 1.0031 1.0122 1.0196 1.0244 1.0257 1.0218 1.0101 0.9879 0.9527 0.9064 0.8623 0.8539 0.8876 - 0.2140 0.2608 0.3057 0.3514 0.3985 0.4469 0.4957 0.5441 0.5909 0.6353 0.6765 0.7141 0.7480 0.7784 0.8057 0.8303 0.8528 0.8739 0.8940 0.9134 0.9321 0.9502 0.9674 0.9835 0.9980 1.0108 1.0218 1.0311 1.0390 1.0456 1.0513 1.0560 1.0585 1.0561 1.0437 1.0137 0.9599 0.8903 0.8514 0.8892 - 0.2244 0.2905 0.3562 0.4207 0.4819 0.5380 0.5877 0.6309 0.6681 0.7005 0.7296 0.7569 0.7836 0.8107 0.8384 0.8670 0.8961 0.9253 0.9540 0.9817 1.0076 1.0313 1.0522 1.0700 1.0841 1.0945 1.1007 1.1030 1.1014 1.0966 1.0899 1.0831 1.0781 1.0754 1.0715 1.0552 1.0092 0.9263 0.8546 0.8900 - 0.2795 0.3588 0.4301 0.4928 0.5461 0.5907 0.6286 0.6626 0.6953 0.7291 0.7651 0.8038 0.8446 0.8863 0.9275 0.9669 1.0035 1.0366 1.0661 1.0922 1.1152 1.1355 1.1535 1.1693 1.1828 1.1936 1.2009 1.2034 1.1997 1.1885 1.1695 1.1445 1.1181 1.0969 1.0852 1.0765 1.0458 0.9631 0.8626 0.8902 - 0.3295 0.4046 0.4672 0.5206 0.5677 0.6119 0.6563 0.7026 0.7515 0.8020 0.8522 0.8999 0.9430 0.9803 1.0112 1.0362 1.0563 1.0732 1.0880 1.1022 1.1163 1.1308 1.1460 1.1621 1.1791 1.1972 1.2158 1.2336 1.2478 1.2537 1.2461 1.2216 1.1820 1.1372 1.1030 1.0871 1.0683 0.9954 0.8737 0.8899 - 0.3484 0.4185 0.4802 0.5389 0.5978 0.6582 0.7193 0.7787 0.8334 0.8805 0.9184 0.9468 0.9672 0.9825 0.9959 1.0103 1.0275 1.0482 1.0715 1.0956 1.1184 1.1381 1.1535 1.1644 1.1722 1.1793 1.1892 1.2048 1.2271 1.2525 1.2718 1.2719 1.2431 1.1889 1.1311 1.0965 1.0807 1.0207 0.8858 0.8895 - 0.3540 0.4297 0.5026 0.5763 0.6499 0.7200 0.7823 0.8329 0.8700 0.8947 0.9109 0.9245 0.9418 0.9679 1.0053 1.0535 1.1092 1.1673 1.2221 1.2694 1.3058 1.3298 1.3403 1.3368 1.3197 1.2915 1.2585 1.2305 1.2187 1.2291 1.2566 1.2820 1.2794 1.2347 1.1638 1.1083 1.0873 1.0386 0.8971 0.8889 - 0.3628 0.4492 0.5342 0.6175 0.6945 0.7594 0.8082 0.8405 0.8603 0.8750 0.8943 0.9268 0.9777 1.0473 1.1301 1.2170 1.2977 1.3641 1.4130 1.4465 1.4699 1.4887 1.5043 1.5124 1.5041 1.4708 1.4115 1.3373 1.2704 1.2345 1.2397 1.2711 1.2913 1.2648 1.1923 1.1207 1.0912 1.0501 0.9061 0.8885 - 0.3732 0.4672 0.5583 0.6435 0.7165 0.7720 0.8088 0.8309 0.8474 0.8698 0.9090 0.9714 1.0564 1.1552 1.2533 1.3342 1.3853 1.4025 1.3930 1.3731 1.3630 1.3784 1.4230 1.4848 1.5386 1.5568 1.5223 1.4405 1.3403 1.2627 1.2372 1.2603 1.2914 1.2798 1.2107 1.1300 1.0935 1.0565 0.9118 0.8882 - 0.3777 0.4742 0.5668 0.6516 0.7220 0.7736 0.8065 0.8265 0.8444 0.8729 0.9222 0.9970 1.0929 1.1973 1.2916 1.3569 1.3810 1.3632 1.3168 1.2659 1.2382 1.2543 1.3185 1.4144 1.5087 1.5633 1.5526 1.4780 1.3704 1.2779 1.2391 1.2566 1.2903 1.2841 1.2169 1.1335 1.0943 1.0585 0.9138 0.8881 - 1.8768 2.2195 2.4183 2.4813 2.4401 2.3454 2.2498 2.1916 2.1847 2.2181 2.2637 2.2883 2.2675 2.1941 2.0809 1.9552 1.8479 1.7807 1.7579 1.7639 1.7707 1.7499 1.6868 1.5879 1.4788 1.3917 1.3473 1.3414 1.3446 1.3195 1.2477 1.1486 1.0713 1.0533 1.0738 1.0556 0.9577 0.8790 0.9175 0.8042 - 1.8784 2.2064 2.3883 2.4384 2.3922 2.3011 2.2154 2.1694 2.1728 2.2119 2.2574 2.2777 2.2508 2.1725 2.0577 1.9344 1.8324 1.7714 1.7533 1.7611 1.7664 1.7423 1.6761 1.5761 1.4688 1.3855 1.3450 1.3411 1.3435 1.3160 1.2422 1.1434 1.0685 1.0531 1.0737 1.0538 0.9554 0.8789 0.9178 0.8040 - 1.8687 2.1491 2.2841 2.3039 2.2521 2.1788 2.1258 2.1150 2.1449 2.1951 2.2360 2.2410 2.1962 2.1055 1.9891 1.8754 1.7905 1.7475 1.7417 1.7525 1.7521 1.7177 1.6430 1.5412 1.4403 1.3686 1.3391 1.3401 1.3398 1.3050 1.2258 1.1285 1.0612 1.0527 1.0733 1.0480 0.9485 0.8788 0.9186 0.8037 - 1.7978 2.0014 2.0797 2.0787 2.0445 2.0171 2.0203 2.0576 2.1145 2.1661 2.1876 2.1636 2.0932 1.9911 1.8817 1.7907 1.7356 1.7187 1.7269 1.7362 1.7223 1.6710 1.5855 1.4852 1.3981 1.3459 1.3322 1.3380 1.3306 1.2839 1.1982 1.1059 1.0517 1.0533 1.0718 1.0374 0.9375 0.8792 0.9196 0.8031 - 1.6015 1.7352 1.7896 1.8123 1.8365 1.8804 1.9449 2.0172 2.0766 2.1036 2.0866 2.0265 1.9367 1.8388 1.7556 1.7034 1.6862 1.6942 1.7075 1.7038 1.6674 1.5965 1.5045 1.4151 1.3515 1.3248 1.3267 1.3320 1.3114 1.2499 1.1602 1.0792 1.0436 1.0554 1.0678 1.0210 0.9231 0.8807 0.9202 0.8026 - 1.2970 1.4217 1.5167 1.6102 1.7106 1.8128 1.9033 1.9661 1.9889 1.9680 1.9098 1.8296 1.7474 1.6821 1.6457 1.6394 1.6534 1.6700 1.6699 1.6398 1.5776 1.4942 1.4095 1.3448 1.3129 1.3109 1.3206 1.3156 1.2758 1.2012 1.1154 1.0541 1.0401 1.0585 1.0586 0.9981 0.9069 0.8840 0.9199 0.8020 - 1.0407 1.2193 1.3835 1.5361 1.6677 1.7660 1.8216 1.8318 1.8021 1.7451 1.6783 1.6190 1.5808 1.5693 1.5809 1.6040 1.6225 1.6209 1.5903 1.5314 1.4551 1.3791 1.3212 1.2924 1.2910 1.3025 1.3049 1.2791 1.2197 1.1408 1.0710 1.0370 1.0428 1.0595 1.0411 0.9688 0.8914 0.8897 0.9177 0.8018 - 0.9664 1.1814 1.3589 1.4942 1.5816 1.6206 1.6180 1.5866 1.5425 1.5016 1.4762 1.4724 1.4889 1.5176 1.5460 1.5606 1.5514 1.5153 1.4572 1.3889 1.3260 1.2820 1.2637 1.2676 1.2809 1.2853 1.2652 1.2156 1.1462 1.0790 1.0376 1.0322 1.0488 1.0526 1.0126 0.9357 0.8798 0.8977 0.9126 0.8020 - 0.9650 1.1372 1.2541 1.3228 1.3519 1.3539 1.3430 1.3328 1.3333 1.3490 1.3786 1.4157 1.4506 1.4729 1.4748 1.4530 1.4104 1.3556 1.3005 1.2570 1.2332 1.2305 1.2425 1.2567 1.2586 1.2376 1.1918 1.1302 1.0708 1.0321 1.0236 1.0377 1.0497 1.0314 0.9734 0.9035 0.8753 0.9067 0.9038 0.8028 - 0.8308 0.9378 1.0071 1.0538 1.0897 1.1238 1.1622 1.2066 1.2551 1.3020 1.3406 1.3643 1.3687 1.3529 1.3204 1.2784 1.2361 1.2029 1.1852 1.1848 1.1978 1.2156 1.2271 1.2222 1.1957 1.1502 1.0955 1.0466 1.0170 1.0127 1.0271 1.0417 1.0340 0.9923 0.9285 0.8791 0.8795 0.9144 0.8908 0.8045 - 0.6166 0.7196 0.8097 0.8943 0.9752 1.0508 1.1180 1.1728 1.2114 1.2316 1.2334 1.2192 1.1940 1.1647 1.1383 1.1212 1.1171 1.1263 1.1450 1.1664 1.1820 1.1843 1.1687 1.1358 1.0916 1.0464 1.0116 0.9956 0.9998 1.0166 1.0310 1.0265 0.9940 0.9401 0.8886 0.8689 0.8909 0.9171 0.8738 0.8073 - 0.5331 0.6621 0.7759 0.8740 0.9533 1.0113 1.0478 1.0645 1.0651 1.0551 1.0404 1.0273 1.0207 1.0238 1.0373 1.0593 1.0854 1.1096 1.1258 1.1291 1.1173 1.0916 1.0567 1.0202 0.9906 0.9745 0.9746 0.9880 1.0062 1.0173 1.0104 0.9810 0.9353 0.8898 0.8657 0.8748 0.9042 0.9112 0.8540 0.8112 - 0.5432 0.6530 0.7366 0.7965 0.8353 0.8571 0.8674 0.8721 0.8769 0.8863 0.9028 0.9269 0.9568 0.9892 1.0195 1.0431 1.0560 1.0561 1.0437 1.0216 0.9944 0.9682 0.9490 0.9409 0.9453 0.9598 0.9787 0.9939 0.9973 0.9839 0.9540 0.9148 0.8790 0.8602 0.8662 0.8908 0.9107 0.8946 0.8337 0.8164 - 0.4606 0.5315 0.5844 0.6260 0.6611 0.6938 0.7272 0.7630 0.8013 0.8410 0.8797 0.9141 0.9411 0.9584 0.9647 0.9604 0.9477 0.9302 0.9124 0.8989 0.8932 0.8972 0.9103 0.9295 0.9500 0.9659 0.9717 0.9642 0.9435 0.9136 0.8823 0.8588 0.8507 0.8608 0.8832 0.9035 0.9026 0.8684 0.8161 0.8227 - 0.3384 0.4110 0.4779 0.5419 0.6029 0.6601 0.7119 0.7569 0.7935 0.8207 0.8382 0.8464 0.8467 0.8415 0.8337 0.8266 0.8232 0.8260 0.8360 0.8528 0.8744 0.8974 0.9178 0.9315 0.9354 0.9283 0.9114 0.8882 0.8641 0.8453 0.8370 0.8419 0.8584 0.8802 0.8971 0.8983 0.8770 0.8379 0.8045 0.8302 - 0.3241 0.4095 0.4851 0.5505 0.6042 0.6456 0.6751 0.6940 0.7046 0.7096 0.7119 0.7144 0.7195 0.7290 0.7437 0.7637 0.7877 0.8138 0.8393 0.8612 0.8771 0.8849 0.8840 0.8751 0.8603 0.8430 0.8274 0.8174 0.8158 0.8238 0.8399 0.8603 0.8791 0.8899 0.8873 0.8696 0.8406 0.8117 0.8016 0.8385 - 0.3343 0.3997 0.4505 0.4892 0.5179 0.5392 0.5560 0.5712 0.5875 0.6067 0.6296 0.6564 0.6860 0.7168 0.7467 0.7736 0.7952 0.8103 0.8180 0.8187 0.8135 0.8044 0.7942 0.7855 0.7809 0.7825 0.7909 0.8056 0.8247 0.8450 0.8625 0.8737 0.8755 0.8669 0.8496 0.8276 0.8077 0.7984 0.8086 0.8472 - 0.2637 0.3112 0.3518 0.3892 0.4252 0.4610 0.4973 0.5341 0.5709 0.6067 0.6402 0.6700 0.6948 0.7137 0.7261 0.7326 0.7339 0.7318 0.7283 0.7254 0.7252 0.7293 0.7383 0.7523 0.7705 0.7911 0.8120 0.8306 0.8447 0.8523 0.8526 0.8458 0.8336 0.8185 0.8044 0.7949 0.7936 0.8031 0.8242 0.8561 - 0.2142 0.2728 0.3288 0.3823 0.4324 0.4777 0.5173 0.5506 0.5774 0.5978 0.6125 0.6223 0.6286 0.6327 0.6363 0.6409 0.6478 0.6581 0.6723 0.6902 0.7111 0.7338 0.7567 0.7780 0.7960 0.8092 0.8170 0.8190 0.8159 0.8090 0.7999 0.7908 0.7839 0.7809 0.7832 0.7914 0.8053 0.8236 0.8446 0.8646 - 0.2403 0.3011 0.3532 0.3969 0.4320 0.4589 0.4789 0.4937 0.5053 0.5156 0.5264 0.5391 0.5545 0.5731 0.5947 0.6188 0.6443 0.6703 0.6952 0.7178 0.7371 0.7521 0.7624 0.7680 0.7694 0.7675 0.7636 0.7592 0.7557 0.7546 0.7568 0.7626 0.7723 0.7853 0.8008 0.8177 0.8348 0.8509 0.8648 0.8724 - 0.2327 0.2752 0.3092 0.3374 0.3616 0.3838 0.4056 0.4284 0.4530 0.4797 0.5084 0.5382 0.5683 0.5972 0.6238 0.6471 0.6664 0.6811 0.6916 0.6981 0.7016 0.7031 0.7036 0.7044 0.7063 0.7104 0.7172 0.7268 0.7394 0.7544 0.7711 0.7888 0.8065 0.8234 0.8389 0.8525 0.8638 0.8730 0.8798 0.8791 - 0.1803 0.2210 0.2599 0.2985 0.3370 0.3752 0.4124 0.4481 0.4813 0.5116 0.5382 0.5608 0.5792 0.5935 0.6042 0.6120 0.6179 0.6230 0.6284 0.6350 0.6436 0.6548 0.6685 0.6847 0.7029 0.7224 0.7427 0.7629 0.7824 0.8005 0.8169 0.8312 0.8434 0.8535 0.8619 0.8690 0.8752 0.8809 0.8862 0.8843 - 0.1810 0.2343 0.2843 0.3303 0.3713 0.4064 0.4354 0.4586 0.4768 0.4911 0.5027 0.5129 0.5228 0.5334 0.5457 0.5600 0.5768 0.5959 0.6171 0.6400 0.6638 0.6878 0.7112 0.7334 0.7537 0.7719 0.7876 0.8010 0.8122 0.8215 0.8293 0.8359 0.8417 0.8472 0.8527 0.8586 0.8653 0.8735 0.8836 0.8880 - 0.2106 0.2580 0.2969 0.3286 0.3539 0.3743 0.3914 0.4071 0.4231 0.4405 0.4602 0.4826 0.5075 0.5344 0.5625 0.5909 0.6187 0.6451 0.6695 0.6913 0.7105 0.7269 0.7408 0.7524 0.7621 0.7704 0.7778 0.7847 0.7913 0.7980 0.8048 0.8116 0.8185 0.8253 0.8321 0.8393 0.8474 0.8582 0.8744 0.8902 - 0.1899 0.2251 0.2555 0.2838 0.3116 0.3400 0.3695 0.4005 0.4327 0.4654 0.4980 0.5295 0.5591 0.5860 0.6097 0.6301 0.6474 0.6620 0.6744 0.6853 0.6955 0.7056 0.7159 0.7268 0.7384 0.7506 0.7633 0.7763 0.7891 0.8013 0.8125 0.8222 0.8301 0.8357 0.8391 0.8408 0.8422 0.8470 0.8627 0.8908 - 0.1625 0.2063 0.2498 0.2934 0.3364 0.3776 0.4160 0.4507 0.4814 0.5080 0.5306 0.5499 0.5666 0.5815 0.5955 0.6095 0.6241 0.6400 0.6575 0.6767 0.6975 0.7196 0.7425 0.7657 0.7884 0.8102 0.8305 0.8490 0.8652 0.8788 0.8894 0.8964 0.8994 0.8976 0.8908 0.8790 0.8636 0.8503 0.8536 0.8902 - 0.1881 0.2432 0.2936 0.3386 0.3772 0.4092 0.4354 0.4569 0.4755 0.4929 0.5107 0.5301 0.5520 0.5767 0.6041 0.6338 0.6651 0.6975 0.7300 0.7619 0.7928 0.8220 0.8493 0.8743 0.8968 0.9169 0.9346 0.9499 0.9629 0.9734 0.9812 0.9855 0.9854 0.9796 0.9661 0.9431 0.9100 0.8718 0.8506 0.8887 - 0.2184 0.2664 0.3059 0.3388 0.3670 0.3926 0.4177 0.4443 0.4736 0.5063 0.5422 0.5807 0.6207 0.6610 0.7004 0.7378 0.7725 0.8042 0.8328 0.8586 0.8819 0.9029 0.9222 0.9398 0.9560 0.9709 0.9846 0.9971 1.0084 1.0186 1.0273 1.0340 1.0378 1.0369 1.0283 1.0069 0.9670 0.9081 0.8555 0.8864 - 0.2096 0.2515 0.2902 0.3288 0.3690 0.4115 0.4564 0.5028 0.5495 0.5954 0.6391 0.6797 0.7166 0.7496 0.7789 0.8051 0.8289 0.8511 0.8724 0.8932 0.9138 0.9342 0.9540 0.9728 0.9903 1.0059 1.0194 1.0307 1.0397 1.0466 1.0518 1.0557 1.0588 1.0611 1.0604 1.0502 1.0180 0.9511 0.8678 0.8837 - 0.2039 0.2596 0.3166 0.3752 0.4338 0.4903 0.5427 0.5898 0.6311 0.6670 0.6986 0.7271 0.7542 0.7809 0.8084 0.8372 0.8672 0.8982 0.9296 0.9606 0.9905 1.0185 1.0440 1.0666 1.0857 1.1012 1.1127 1.1199 1.1225 1.1204 1.1135 1.1029 1.0909 1.0807 1.0752 1.0715 1.0535 0.9923 0.8858 0.8808 - 0.2393 0.3126 0.3826 0.4474 0.5047 0.5536 0.5947 0.6298 0.6615 0.6926 0.7252 0.7607 0.7994 0.8406 0.8831 0.9252 0.9653 1.0024 1.0357 1.0651 1.0907 1.1132 1.1331 1.1509 1.1671 1.1817 1.1944 1.2045 1.2106 1.2104 1.2017 1.1827 1.1544 1.1222 1.0957 1.0827 1.0735 1.0262 0.9064 0.8781 - 0.2903 0.3665 0.4323 0.4880 0.5350 0.5761 0.6147 0.6541 0.6966 0.7428 0.7918 0.8417 0.8897 0.9335 0.9712 1.0021 1.0267 1.0460 1.0617 1.0755 1.0887 1.1022 1.1164 1.1314 1.1473 1.1642 1.1824 1.2019 1.2219 1.2399 1.2509 1.2478 1.2246 1.1818 1.1320 1.0967 1.0838 1.0509 0.9273 0.8756 - 0.3218 0.3918 0.4503 0.5021 0.5511 0.6009 0.6536 0.7091 0.7655 0.8194 0.8675 0.9072 0.9374 0.9590 0.9747 0.9877 1.0015 1.0184 1.0394 1.0638 1.0900 1.1156 1.1382 1.1560 1.1681 1.1750 1.1790 1.1841 1.1950 1.2146 1.2409 1.2639 1.2669 1.2366 1.1769 1.1176 1.0907 1.0673 0.9461 0.8735 - 0.3324 0.3997 0.4602 0.5199 0.5817 0.6458 0.7099 0.7698 0.8211 0.8607 0.8881 0.9058 0.9192 0.9344 0.9575 0.9921 1.0385 1.0940 1.1534 1.2111 1.2621 1.3033 1.3327 1.3489 1.3506 1.3366 1.3078 1.2697 1.2334 1.2131 1.2189 1.2468 1.2746 1.2701 1.2174 1.1422 1.0973 1.0774 0.9616 0.8718 - 0.3359 0.4068 0.4754 0.5461 0.6183 0.6885 0.7512 0.8012 0.8363 0.8578 0.8718 0.8869 0.9125 0.9558 1.0189 1.0983 1.1851 1.2684 1.3386 1.3908 1.4261 1.4506 1.4713 1.4912 1.5066 1.5068 1.4802 1.4222 1.3431 1.2680 1.2258 1.2306 1.2649 1.2832 1.2458 1.1643 1.1038 1.0833 0.9729 0.8706 - 0.3389 0.4148 0.4903 0.5676 0.6437 0.7127 0.7685 0.8076 0.8313 0.8458 0.8617 0.8906 0.9414 1.0168 1.1112 1.2116 1.3006 1.3626 1.3894 1.3844 1.3627 1.3460 1.3541 1.3951 1.4598 1.5226 1.5513 1.5234 1.4410 1.3350 1.2522 1.2274 1.2551 1.2854 1.2611 1.1791 1.1087 1.0863 0.9798 0.8699 - 0.3403 0.4183 0.4962 0.5755 0.6521 0.7197 0.7722 0.8073 0.8277 0.8417 0.8611 0.8979 0.9599 1.0470 1.1497 1.2507 1.3296 1.3696 1.3649 1.3240 1.2695 1.2310 1.2344 1.2899 1.3852 1.4868 1.5521 1.5494 1.4756 1.3630 1.2659 1.2284 1.2516 1.2852 1.2658 1.1843 1.1106 1.0873 0.9820 0.8696 - 1.7265 1.9364 2.0154 2.0084 1.9647 1.9284 1.9263 1.9622 2.0196 2.0712 2.0905 2.0625 1.9887 1.8869 1.7835 1.7041 1.6630 1.6576 1.6704 1.6755 1.6510 1.5890 1.4995 1.4069 1.3380 1.3073 1.3078 1.3126 1.2903 1.2262 1.1360 1.0604 1.0342 1.0504 1.0537 0.9927 0.9023 0.8901 0.9121 0.8109 - 1.7095 1.9053 1.9755 1.9674 1.9296 1.9035 1.9120 1.9553 2.0152 2.0645 2.0785 2.0448 1.9674 1.8655 1.7656 1.6917 1.6561 1.6545 1.6679 1.6711 1.6433 1.5784 1.4883 1.3976 1.3322 1.3050 1.3071 1.3114 1.2871 1.2211 1.1311 1.0576 1.0337 1.0506 1.0523 0.9900 0.9008 0.8906 0.9117 0.8111 - 1.6450 1.8037 1.8553 1.8512 1.8359 1.8409 1.8780 1.9388 2.0014 2.0406 2.0378 1.9884 1.9029 1.8035 1.7156 1.6588 1.6389 1.6463 1.6600 1.6560 1.6183 1.5461 1.4554 1.3713 1.3166 1.2991 1.3053 1.3070 1.2763 1.2057 1.1169 1.0500 1.0330 1.0510 1.0479 0.9818 0.8965 0.8922 0.9103 0.8117 - 1.5030 1.6214 1.6674 1.6893 1.7194 1.7722 1.8440 1.9177 1.9711 1.9862 1.9559 1.8867 1.7968 1.7098 1.6464 1.6171 1.6184 1.6344 1.6429 1.6245 1.5715 1.4912 1.4037 1.3333 1.2963 1.2921 1.3017 1.2967 1.2555 1.1792 1.0948 1.0399 1.0332 1.0514 1.0397 0.9683 0.8904 0.8950 0.9077 0.8127 - 1.2794 1.3878 1.4643 1.5416 1.6309 1.7276 1.8164 1.8790 1.9015 1.8794 1.8203 1.7411 1.6632 1.6057 1.5789 1.5812 1.5996 1.6145 1.6073 1.5677 1.4989 1.4160 1.3411 1.2930 1.2780 1.2860 1.2935 1.2758 1.2215 1.1420 1.0680 1.0307 1.0356 1.0506 1.0263 0.9500 0.8837 0.8990 0.9034 0.8142 - 1.0467 1.1929 1.3297 1.4654 1.5924 1.6959 1.7622 1.7835 1.7617 1.7079 1.6398 1.5769 1.5349 1.5210 1.5322 1.5558 1.5745 1.5719 1.5393 1.4786 1.4028 1.3311 1.2811 1.2614 1.2665 1.2784 1.2744 1.2387 1.1728 1.0974 1.0420 1.0260 1.0399 1.0459 1.0061 0.9281 0.8783 0.9040 0.8971 0.8163 - 0.9214 1.1180 1.2932 1.4405 1.5485 1.6094 1.6236 1.5998 1.5531 1.5016 1.4616 1.4437 1.4500 1.4743 1.5036 1.5227 1.5190 1.4871 1.4309 1.3629 1.2997 1.2561 1.2393 1.2449 1.2583 1.2602 1.2354 1.1818 1.1128 1.0529 1.0234 1.0275 1.0430 1.0333 0.9784 0.9050 0.8762 0.9094 0.8883 0.8190 - 0.9160 1.1109 1.2579 1.3554 1.4047 1.4135 1.3957 1.3676 1.3444 1.3368 1.3487 1.3770 1.4124 1.4426 1.4558 1.4449 1.4094 1.3562 1.2978 1.2481 1.2180 1.2109 1.2212 1.2358 1.2386 1.2177 1.1712 1.1096 1.0526 1.0193 1.0169 1.0328 1.0389 1.0090 0.9443 0.8845 0.8789 0.9136 0.8767 0.8225 - 0.8818 1.0167 1.1005 1.1456 1.1649 1.1720 1.1795 1.1963 1.2256 1.2651 1.3078 1.3444 1.3658 1.3662 1.3444 1.3052 1.2579 1.2139 1.1833 1.1718 1.1783 1.1951 1.2098 1.2100 1.1878 1.1439 1.0886 1.0382 1.0083 1.0052 1.0207 1.0334 1.0199 0.9717 0.9084 0.8713 0.8866 0.9147 0.8627 0.8267 - 0.7161 0.8062 0.8704 0.9231 0.9734 1.0261 1.0822 1.1390 1.1909 1.2315 1.2553 1.2594 1.2446 1.2155 1.1799 1.1469 1.1246 1.1178 1.1265 1.1454 1.1655 1.1764 1.1700 1.1434 1.1006 1.0521 1.0116 0.9902 0.9915 1.0080 1.0228 1.0173 0.9818 0.9261 0.8786 0.8690 0.8972 0.9101 0.8469 0.8318 - 0.5426 0.6473 0.7435 0.8350 0.9203 0.9954 1.0560 1.0985 1.1213 1.1253 1.1140 1.0933 1.0702 1.0517 1.0435 1.0481 1.0645 1.0882 1.1118 1.1274 1.1286 1.1126 1.0813 1.0416 1.0035 0.9771 0.9685 0.9774 0.9957 1.0096 1.0054 0.9765 0.9294 0.8837 0.8631 0.8777 0.9059 0.8979 0.8309 0.8375 - 0.5044 0.6281 0.7346 0.8224 0.8887 0.9325 0.9555 0.9616 0.9566 0.9473 0.9399 0.9395 0.9490 0.9686 0.9955 1.0250 1.0508 1.0673 1.0701 1.0582 1.0338 1.0027 0.9722 0.9502 0.9418 0.9482 0.9650 0.9836 0.9933 0.9855 0.9579 0.9173 0.8786 0.8584 0.8659 0.8918 0.9065 0.8777 0.8168 0.8440 - 0.5075 0.6034 0.6736 0.7221 0.7526 0.7704 0.7815 0.7917 0.8058 0.8265 0.8543 0.8876 0.9227 0.9551 0.9800 0.9938 0.9947 0.9834 0.9634 0.9398 0.9188 0.9059 0.9044 0.9146 0.9331 0.9536 0.9681 0.9699 0.9555 0.9270 0.8922 0.8627 0.8497 0.8581 0.8813 0.9008 0.8939 0.8519 0.8071 0.8509 - 0.4146 0.4779 0.5269 0.5682 0.6062 0.6441 0.6837 0.7254 0.7679 0.8088 0.8452 0.8740 0.8929 0.9009 0.8986 0.8884 0.8741 0.8602 0.8513 0.8505 0.8593 0.8766 0.8987 0.9206 0.9363 0.9411 0.9325 0.9120 0.8845 0.8579 0.8405 0.8384 0.8520 0.8748 0.8935 0.8937 0.8675 0.8256 0.8041 0.8579 - 0.3115 0.3825 0.4495 0.5140 0.5754 0.6317 0.6810 0.7216 0.7523 0.7727 0.7834 0.7861 0.7833 0.7781 0.7740 0.7741 0.7804 0.7940 0.8140 0.8381 0.8627 0.8837 0.8972 0.9006 0.8932 0.8768 0.8557 0.8355 0.8221 0.8197 0.8297 0.8492 0.8711 0.8862 0.8857 0.8663 0.8338 0.8059 0.8089 0.8649 - 0.3089 0.3902 0.4614 0.5219 0.5703 0.6062 0.6305 0.6452 0.6532 0.6576 0.6617 0.6682 0.6792 0.6958 0.7179 0.7440 0.7721 0.7992 0.8223 0.8387 0.8467 0.8460 0.8376 0.8242 0.8095 0.7977 0.7924 0.7960 0.8087 0.8282 0.8497 0.8674 0.8756 0.8705 0.8526 0.8273 0.8051 0.7992 0.8213 0.8715 - 0.3142 0.3743 0.4204 0.4552 0.4813 0.5013 0.5185 0.5357 0.5552 0.5784 0.6055 0.6359 0.6680 0.6996 0.7282 0.7516 0.7682 0.7772 0.7790 0.7750 0.7674 0.7591 0.7532 0.7521 0.7577 0.7702 0.7884 0.8099 0.8310 0.8478 0.8566 0.8556 0.8451 0.8278 0.8091 0.7957 0.7940 0.8084 0.8389 0.8772 - 0.2467 0.2912 0.3300 0.3666 0.4027 0.4394 0.4768 0.5147 0.5521 0.5876 0.6197 0.6469 0.6682 0.6829 0.6914 0.6945 0.6940 0.6920 0.6908 0.6926 0.6989 0.7106 0.7274 0.7482 0.7709 0.7929 0.8116 0.8246 0.8304 0.8286 0.8203 0.8079 0.7950 0.7854 0.7828 0.7895 0.8058 0.8299 0.8578 0.8818 - 0.2029 0.2592 0.3133 0.3655 0.4143 0.4582 0.4962 0.5275 0.5520 0.5699 0.5823 0.5903 0.5956 0.6001 0.6053 0.6130 0.6243 0.6397 0.6591 0.6817 0.7061 0.7305 0.7527 0.7711 0.7841 0.7910 0.7921 0.7881 0.7811 0.7731 0.7667 0.7641 0.7671 0.7764 0.7917 0.8116 0.8336 0.8551 0.8735 0.8851 - 0.2275 0.2860 0.3362 0.3782 0.4115 0.4369 0.4555 0.4693 0.4804 0.4910 0.5028 0.5173 0.5352 0.5566 0.5811 0.6076 0.6350 0.6615 0.6857 0.7063 0.7221 0.7329 0.7387 0.7401 0.7384 0.7352 0.7322 0.7313 0.7337 0.7404 0.7517 0.7671 0.7856 0.8059 0.8262 0.8450 0.8609 0.8733 0.8823 0.8869 - 0.2229 0.2637 0.2961 0.3228 0.3458 0.3671 0.3884 0.4113 0.4364 0.4640 0.4936 0.5242 0.5547 0.5834 0.6092 0.6308 0.6477 0.6599 0.6677 0.6720 0.6740 0.6753 0.6771 0.6807 0.6872 0.6970 0.7103 0.7269 0.7460 0.7667 0.7877 0.8079 0.8262 0.8419 0.8546 0.8644 0.8717 0.8773 0.8826 0.8872 - 0.1742 0.2121 0.2484 0.2849 0.3218 0.3590 0.3957 0.4312 0.4644 0.4944 0.5205 0.5423 0.5596 0.5727 0.5822 0.5892 0.5949 0.6006 0.6075 0.6168 0.6289 0.6443 0.6626 0.6834 0.7058 0.7288 0.7514 0.7726 0.7918 0.8084 0.8222 0.8333 0.8418 0.8483 0.8534 0.8579 0.8623 0.8678 0.8754 0.8861 - 0.1692 0.2199 0.2681 0.3133 0.3541 0.3893 0.4185 0.4418 0.4599 0.4739 0.4851 0.4950 0.5050 0.5161 0.5294 0.5453 0.5642 0.5859 0.6097 0.6351 0.6610 0.6864 0.7105 0.7323 0.7515 0.7677 0.7809 0.7915 0.7998 0.8065 0.8122 0.8173 0.8222 0.8272 0.8326 0.8384 0.8450 0.8530 0.8645 0.8838 - 0.1988 0.2461 0.2854 0.3175 0.3429 0.3630 0.3795 0.3943 0.4093 0.4260 0.4453 0.4678 0.4932 0.5209 0.5501 0.5795 0.6082 0.6350 0.6592 0.6804 0.6984 0.7133 0.7256 0.7357 0.7442 0.7519 0.7592 0.7668 0.7749 0.7837 0.7930 0.8025 0.8119 0.8206 0.8283 0.8347 0.8399 0.8451 0.8548 0.8806 - 0.1873 0.2213 0.2499 0.2757 0.3008 0.3264 0.3537 0.3830 0.4142 0.4467 0.4796 0.5117 0.5419 0.5694 0.5935 0.6139 0.6309 0.6450 0.6570 0.6678 0.6783 0.6893 0.7013 0.7147 0.7296 0.7457 0.7628 0.7804 0.7981 0.8151 0.8309 0.8447 0.8558 0.8636 0.8674 0.8667 0.8616 0.8539 0.8509 0.8768 - 0.1567 0.1956 0.2345 0.2745 0.3151 0.3552 0.3936 0.4292 0.4613 0.4893 0.5132 0.5334 0.5505 0.5655 0.5795 0.5935 0.6085 0.6254 0.6445 0.6660 0.6898 0.7155 0.7424 0.7697 0.7966 0.8226 0.8471 0.8695 0.8897 0.9073 0.9219 0.9331 0.9403 0.9428 0.9393 0.9286 0.9092 0.8817 0.8557 0.8728 - 0.1701 0.2222 0.2716 0.3172 0.3575 0.3917 0.4198 0.4426 0.4616 0.4786 0.4955 0.5137 0.5344 0.5583 0.5856 0.6159 0.6487 0.6830 0.7179 0.7524 0.7859 0.8176 0.8470 0.8738 0.8980 0.9196 0.9388 0.9558 0.9709 0.9841 0.9953 1.0042 1.0100 1.0118 1.0077 0.9945 0.9677 0.9234 0.8698 0.8689 - 0.2037 0.2531 0.2944 0.3285 0.3567 0.3807 0.4031 0.4262 0.4518 0.4811 0.5145 0.5516 0.5915 0.6326 0.6736 0.7130 0.7499 0.7837 0.8141 0.8413 0.8656 0.8876 0.9077 0.9262 0.9433 0.9594 0.9744 0.9884 1.0013 1.0131 1.0235 1.0325 1.0399 1.0451 1.0467 1.0408 1.0190 0.9695 0.8913 0.8653 - 0.2060 0.2461 0.2807 0.3135 0.3470 0.3829 0.4221 0.4646 0.5095 0.5555 0.6009 0.6442 0.6842 0.7202 0.7521 0.7802 0.8054 0.8287 0.8509 0.8729 0.8951 0.9176 0.9401 0.9621 0.9831 1.0024 1.0196 1.0343 1.0460 1.0545 1.0598 1.0623 1.0627 1.0628 1.0636 1.0635 1.0531 1.0107 0.9174 0.8623 - 0.1930 0.2391 0.2863 0.3366 0.3894 0.4434 0.4964 0.5463 0.5918 0.6320 0.6672 0.6982 0.7262 0.7530 0.7799 0.8081 0.8380 0.8698 0.9029 0.9366 0.9699 1.0019 1.0316 1.0586 1.0823 1.1026 1.1193 1.1321 1.1405 1.1438 1.1412 1.1321 1.1173 1.0997 1.0844 1.0763 1.0712 1.0421 0.9445 0.8598 - 0.2072 0.2709 0.3354 0.3990 0.4588 0.5124 0.5585 0.5973 0.6307 0.6610 0.6910 0.7228 0.7580 0.7969 0.8387 0.8820 0.9250 0.9658 1.0031 1.0361 1.0647 1.0893 1.1106 1.1295 1.1466 1.1627 1.1780 1.1924 1.2052 1.2146 1.2181 1.2120 1.1933 1.1621 1.1250 1.0951 1.0817 1.0631 0.9699 0.8579 - 0.2481 0.3223 0.3904 0.4507 0.5019 0.5447 0.5817 0.6163 0.6521 0.6916 0.7357 0.7838 0.8335 0.8821 0.9266 0.9647 0.9955 1.0192 1.0373 1.0517 1.0644 1.0770 1.0904 1.1048 1.1199 1.1356 1.1518 1.1692 1.1885 1.2098 1.2310 1.2464 1.2471 1.2245 1.1785 1.1254 1.0922 1.0759 0.9917 0.8565 - 0.2867 0.3592 0.4207 0.4725 0.5174 0.5593 0.6020 0.6485 0.6994 0.7533 0.8069 0.8563 0.8981 0.9304 0.9533 0.9692 0.9816 0.9943 1.0105 1.0319 1.0583 1.0877 1.1173 1.1438 1.1644 1.1772 1.1823 1.1822 1.1817 1.1874 1.2043 1.2314 1.2570 1.2611 1.2269 1.1621 1.1061 1.0837 1.0093 0.8556 - 0.3079 0.3751 0.4314 0.4821 0.5315 0.5835 0.6395 0.6983 0.7563 0.8087 0.8515 0.8826 0.9030 0.9170 0.9306 0.9504 0.9812 1.0248 1.0794 1.1403 1.2018 1.2582 1.3053 1.3403 1.3614 1.3662 1.3531 1.3221 1.2787 1.2354 1.2091 1.2123 1.2412 1.2691 1.2586 1.1961 1.1220 1.0890 1.0224 0.8551 - 0.3159 0.3805 0.4377 0.4936 0.5523 0.6147 0.6786 0.7393 0.7911 0.8302 0.8557 0.8714 0.8848 0.9051 0.9407 0.9960 1.0695 1.1540 1.2389 1.3134 1.3709 1.4109 1.4385 1.4612 1.4832 1.5017 1.5059 1.4825 1.4250 1.3432 1.2641 1.2204 1.2272 1.2626 1.2736 1.2213 1.1367 1.0927 1.0313 0.8548 - 0.3184 0.3834 0.4436 0.5052 0.5705 0.6380 0.7031 0.7596 0.8025 0.8303 0.8466 0.8598 0.8813 0.9215 0.9859 1.0725 1.1707 1.2641 1.3354 1.3732 1.3769 1.3587 1.3397 1.3418 1.3770 1.4394 1.5045 1.5383 1.5148 1.4335 1.3264 1.2442 1.2239 1.2552 1.2785 1.2360 1.1468 1.0951 1.0365 0.8547 - 0.3190 0.3845 0.4462 0.5100 0.5774 0.6462 0.7108 0.7649 0.8041 0.8282 0.8425 0.8572 0.8844 0.9341 1.0099 1.1063 1.2085 1.2963 1.3506 1.3608 1.3306 1.2792 1.2356 1.2286 1.2736 1.3628 1.4644 1.5343 1.5364 1.4646 1.3519 1.2563 1.2245 1.2524 1.2794 1.2407 1.1503 1.0959 1.0381 0.8546 - 1.4511 1.5624 1.5995 1.6136 1.6389 1.6899 1.7610 1.8325 1.8808 1.8885 1.8513 1.7792 1.6933 1.6175 1.5698 1.5557 1.5661 1.5816 1.5804 1.5480 1.4840 1.4027 1.3270 1.2775 1.2616 1.2684 1.2733 1.2515 1.1939 1.1159 1.0502 1.0239 1.0327 1.0371 0.9954 0.9185 0.8798 0.9097 0.8745 0.8460 - 1.4222 1.5282 1.5669 1.5879 1.6224 1.6814 1.7568 1.8282 1.8729 1.8754 1.8336 1.7595 1.6748 1.6029 1.5603 1.5507 1.5634 1.5787 1.5752 1.5400 1.4741 1.3929 1.3192 1.2728 1.2595 1.2674 1.2715 1.2478 1.1889 1.1113 1.0476 1.0234 1.0331 1.0363 0.9930 0.9163 0.8796 0.9099 0.8736 0.8463 - 1.3326 1.4291 1.4777 1.5216 1.5824 1.6618 1.7459 1.8134 1.8451 1.8319 1.7783 1.7008 1.6221 1.5631 1.5356 1.5379 1.5559 1.5689 1.5580 1.5145 1.4439 1.3641 1.2974 1.2602 1.2543 1.2643 1.2652 1.2359 1.1735 1.0975 1.0401 1.0226 1.0340 1.0335 0.9857 0.9100 0.8790 0.9105 0.8708 0.8472 - 1.1847 1.2844 1.3615 1.4453 1.5421 1.6421 1.7269 1.7780 1.7848 1.7486 1.6828 1.6079 1.5453 1.5099 1.5052 1.5221 1.5429 1.5478 1.5234 1.4681 1.3935 1.3197 1.2665 1.2443 1.2480 1.2587 1.2523 1.2138 1.1471 1.0760 1.0299 1.0223 1.0353 1.0278 0.9733 0.9006 0.8788 0.9112 0.8660 0.8487 - 1.0135 1.1433 1.2673 1.3950 1.5178 1.6190 1.6827 1.7007 1.6754 1.6198 1.5535 1.4967 1.4642 1.4606 1.4792 1.5047 1.5186 1.5066 1.4641 1.3984 1.3263 1.2672 1.2348 1.2306 1.2419 1.2478 1.2289 1.1789 1.1106 1.0496 1.0198 1.0236 1.0355 1.0175 0.9559 0.8895 0.8799 0.9116 0.8595 0.8508 - 0.8905 1.0660 1.2299 1.3758 1.4894 1.5589 1.5805 1.5606 1.5141 1.4603 1.4172 1.3972 1.4031 1.4279 1.4575 1.4755 1.4691 1.4341 1.3763 1.3101 1.2532 1.2190 1.2114 1.2219 1.2330 1.2258 1.1902 1.1309 1.0673 1.0237 1.0133 1.0264 1.0321 1.0006 0.9340 0.8788 0.8831 0.9110 0.8512 0.8534 - 0.8611 1.0568 1.2162 1.3321 1.3990 1.4194 1.4043 1.3705 1.3358 1.3150 1.3156 1.3370 1.3705 1.4028 1.4202 1.4131 1.3799 1.3275 1.2691 1.2201 1.1919 1.1874 1.1995 1.2132 1.2119 1.1850 1.1340 1.0737 1.0251 1.0048 1.0125 1.0278 1.0209 0.9753 0.9094 0.8711 0.8886 0.9082 0.8415 0.8565 - 0.8652 1.0259 1.1334 1.1935 1.2152 1.2125 1.2014 1.1961 1.2055 1.2315 1.2694 1.3092 1.3394 1.3502 1.3370 1.3021 1.2543 1.2060 1.1698 1.1535 1.1575 1.1740 1.1894 1.1898 1.1666 1.1213 1.0658 1.0183 0.9944 0.9977 1.0152 1.0223 0.9977 0.9421 0.8857 0.8688 0.8957 0.9018 0.8311 0.8600 - 0.7836 0.8855 0.9466 0.9827 1.0074 1.0322 1.0646 1.1065 1.1547 1.2020 1.2396 1.2598 1.2587 1.2372 1.2016 1.1616 1.1281 1.1095 1.1092 1.1241 1.1451 1.1601 1.1585 1.1351 1.0929 1.0432 1.0012 0.9798 0.9826 1.0002 1.0133 1.0022 0.9608 0.9051 0.8681 0.8733 0.9018 0.8907 0.8210 0.8639 - 0.6111 0.6940 0.7622 0.8269 0.8928 0.9598 1.0244 1.0812 1.1239 1.1483 1.1527 1.1393 1.1139 1.0846 1.0602 1.0478 1.0505 1.0668 1.0904 1.1120 1.1223 1.1146 1.0882 1.0486 1.0064 0.9742 0.9608 0.9675 0.9858 1.0002 0.9950 0.9634 0.9148 0.8729 0.8615 0.8832 0.9036 0.8743 0.8126 0.8679 - 0.4885 0.5964 0.6972 0.7910 0.8736 0.9404 0.9876 1.0139 1.0209 1.0129 0.9966 0.9793 0.9680 0.9676 0.9796 1.0021 1.0296 1.0549 1.0703 1.0705 1.0542 1.0248 0.9897 0.9587 0.9403 0.9391 0.9527 0.9724 0.9853 0.9801 0.9528 0.9109 0.8718 0.8549 0.8675 0.8936 0.8970 0.8536 0.8075 0.8718 - 0.4818 0.5975 0.6932 0.7676 0.8193 0.8493 0.8617 0.8623 0.8581 0.8559 0.8608 0.8756 0.8999 0.9308 0.9630 0.9904 1.0072 1.0100 0.9985 0.9759 0.9482 0.9233 0.9081 0.9066 0.9187 0.9389 0.9582 0.9667 0.9577 0.9309 0.8941 0.8612 0.8465 0.8561 0.8809 0.8970 0.8797 0.8313 0.8071 0.8755 - 0.4709 0.5529 0.6110 0.6503 0.6758 0.6934 0.7091 0.7276 0.7520 0.7829 0.8188 0.8560 0.8900 0.9161 0.9310 0.9331 0.9236 0.9061 0.8862 0.8698 0.8622 0.8661 0.8809 0.9027 0.9246 0.9390 0.9398 0.9250 0.8978 0.8666 0.8425 0.8350 0.8468 0.8706 0.8898 0.8859 0.8529 0.8120 0.8124 0.8787 - 0.3723 0.4300 0.4771 0.5199 0.5619 0.6052 0.6501 0.6954 0.7387 0.7771 0.8077 0.8283 0.8381 0.8379 0.8302 0.8190 0.8088 0.8039 0.8073 0.8200 0.8405 0.8648 0.8876 0.9033 0.9075 0.8988 0.8792 0.8543 0.8319 0.8199 0.8228 0.8399 0.8635 0.8814 0.8813 0.8586 0.8230 0.8010 0.8232 0.8812 - 0.2890 0.3592 0.4262 0.4909 0.5513 0.6052 0.6503 0.6851 0.7090 0.7226 0.7277 0.7271 0.7241 0.7224 0.7251 0.7343 0.7507 0.7733 0.7994 0.8254 0.8470 0.8606 0.8638 0.8567 0.8415 0.8228 0.8064 0.7977 0.8003 0.8145 0.8363 0.8584 0.8720 0.8700 0.8512 0.8227 0.8001 0.8021 0.8381 0.8827 - 0.2956 0.3727 0.4392 0.4944 0.5372 0.5676 0.5873 0.5988 0.6054 0.6109 0.6183 0.6302 0.6477 0.6710 0.6987 0.7284 0.7570 0.7814 0.7988 0.8075 0.8075 0.8001 0.7883 0.7761 0.7677 0.7665 0.7743 0.7906 0.8125 0.8349 0.8517 0.8579 0.8510 0.8330 0.8105 0.7939 0.7937 0.8157 0.8544 0.8831 - 0.2958 0.3508 0.3925 0.4239 0.4478 0.4673 0.4855 0.5051 0.5280 0.5550 0.5857 0.6185 0.6514 0.6817 0.7071 0.7256 0.7363 0.7396 0.7370 0.7309 0.7246 0.7210 0.7227 0.7314 0.7470 0.7679 0.7910 0.8126 0.8286 0.8359 0.8332 0.8217 0.8052 0.7899 0.7822 0.7874 0.8071 0.8374 0.8685 0.8823 - 0.2314 0.2732 0.3105 0.3465 0.3829 0.4204 0.4588 0.4973 0.5346 0.5690 0.5988 0.6228 0.6402 0.6510 0.6561 0.6571 0.6564 0.6565 0.6596 0.6675 0.6811 0.6999 0.7226 0.7469 0.7699 0.7887 0.8011 0.8057 0.8028 0.7942 0.7827 0.7725 0.7675 0.7710 0.7844 0.8065 0.8334 0.8591 0.8773 0.8804 - 0.1928 0.2468 0.2993 0.3501 0.3976 0.4401 0.4763 0.5055 0.5275 0.5431 0.5534 0.5601 0.5652 0.5707 0.5785 0.5899 0.6057 0.6259 0.6497 0.6754 0.7010 0.7244 0.7435 0.7567 0.7635 0.7643 0.7603 0.7538 0.7475 0.7441 0.7459 0.7543 0.7693 0.7900 0.8139 0.8378 0.8581 0.8721 0.8786 0.8775 - 0.2159 0.2723 0.3208 0.3611 0.3929 0.4168 0.4341 0.4470 0.4578 0.4687 0.4817 0.4980 0.5182 0.5422 0.5690 0.5974 0.6254 0.6514 0.6736 0.6909 0.7028 0.7093 0.7112 0.7101 0.7078 0.7063 0.7077 0.7134 0.7241 0.7398 0.7597 0.7821 0.8052 0.8267 0.8450 0.8587 0.8674 0.8716 0.8730 0.8739 - 0.2141 0.2534 0.2844 0.3097 0.3315 0.3518 0.3727 0.3954 0.4209 0.4492 0.4795 0.5107 0.5412 0.5694 0.5938 0.6135 0.6280 0.6376 0.6432 0.6461 0.6479 0.6504 0.6552 0.6633 0.6754 0.6915 0.7113 0.7335 0.7570 0.7801 0.8013 0.8196 0.8341 0.8446 0.8515 0.8557 0.8581 0.8600 0.8630 0.8698 - 0.1691 0.2044 0.2382 0.2724 0.3077 0.3438 0.3800 0.4152 0.4482 0.4780 0.5037 0.5247 0.5409 0.5529 0.5614 0.5679 0.5737 0.5805 0.5895 0.6018 0.6177 0.6373 0.6598 0.6843 0.7095 0.7339 0.7565 0.7763 0.7927 0.8056 0.8152 0.8220 0.8268 0.8303 0.8335 0.8370 0.8412 0.8465 0.8532 0.8655 - 0.1589 0.2067 0.2531 0.2973 0.3378 0.3732 0.4028 0.4263 0.4444 0.4582 0.4691 0.4787 0.4886 0.5001 0.5143 0.5318 0.5526 0.5765 0.6026 0.6298 0.6570 0.6830 0.7066 0.7271 0.7440 0.7575 0.7678 0.7756 0.7818 0.7873 0.7928 0.7987 0.8054 0.8129 0.8208 0.8288 0.8363 0.8427 0.8486 0.8615 - 0.1870 0.2342 0.2741 0.3069 0.3328 0.3529 0.3689 0.3828 0.3968 0.4125 0.4312 0.4534 0.4790 0.5074 0.5374 0.5677 0.5969 0.6239 0.6477 0.6680 0.6847 0.6982 0.7090 0.7181 0.7262 0.7344 0.7433 0.7534 0.7651 0.7782 0.7924 0.8071 0.8215 0.8346 0.8457 0.8538 0.8578 0.8572 0.8528 0.8581 - 0.1844 0.2182 0.2457 0.2696 0.2921 0.3149 0.3396 0.3668 0.3967 0.4285 0.4615 0.4941 0.5250 0.5532 0.5777 0.5983 0.6151 0.6288 0.6405 0.6514 0.6624 0.6748 0.6891 0.7056 0.7244 0.7452 0.7674 0.7905 0.8136 0.8360 0.8569 0.8755 0.8911 0.9028 0.9100 0.9114 0.9055 0.8906 0.8673 0.8556 - 0.1540 0.1883 0.2226 0.2584 0.2957 0.3339 0.3718 0.4080 0.4413 0.4709 0.4964 0.5177 0.5355 0.5507 0.5646 0.5785 0.5937 0.6111 0.6316 0.6552 0.6818 0.7108 0.7413 0.7724 0.8031 0.8326 0.8603 0.8858 0.9088 0.9291 0.9467 0.9612 0.9724 0.9797 0.9822 0.9781 0.9642 0.9360 0.8908 0.8540 - 0.1549 0.2028 0.2499 0.2952 0.3368 0.3732 0.4037 0.4285 0.4487 0.4659 0.4820 0.4989 0.5181 0.5406 0.5671 0.5974 0.6309 0.6667 0.7037 0.7405 0.7763 0.8099 0.8410 0.8691 0.8942 0.9166 0.9364 0.9542 0.9703 0.9848 0.9978 1.0092 1.0187 1.0259 1.0297 1.0278 1.0151 0.9827 0.9201 0.8535 - 0.1864 0.2369 0.2804 0.3169 0.3466 0.3708 0.3918 0.4120 0.4339 0.4593 0.4893 0.5239 0.5625 0.6037 0.6457 0.6870 0.7261 0.7621 0.7944 0.8231 0.8486 0.8714 0.8922 0.9115 0.9298 0.9473 0.9641 0.9800 0.9949 1.0084 1.0202 1.0302 1.0383 1.0450 1.0503 1.0529 1.0477 1.0214 0.9513 0.8540 - 0.2004 0.2412 0.2747 0.3041 0.3322 0.3616 0.3942 0.4312 0.4723 0.5166 0.5623 0.6076 0.6505 0.6898 0.7246 0.7552 0.7822 0.8066 0.8297 0.8526 0.8760 0.9002 0.9252 0.9504 0.9752 0.9988 1.0206 1.0397 1.0555 1.0676 1.0753 1.0785 1.0775 1.0738 1.0695 1.0669 1.0644 1.0481 0.9807 0.8553 - 0.1892 0.2283 0.2667 0.3075 0.3522 0.4004 0.4508 0.5013 0.5497 0.5943 0.6339 0.6686 0.6990 0.7267 0.7533 0.7805 0.8095 0.8410 0.8748 0.9102 0.9462 0.9816 1.0152 1.0462 1.0740 1.0983 1.1193 1.1367 1.1505 1.1599 1.1640 1.1614 1.1510 1.1329 1.1101 1.0888 1.0758 1.0641 1.0058 0.8574 - 0.1866 0.2388 0.2939 0.3518 0.4103 0.4664 0.5173 0.5617 0.5994 0.6318 0.6613 0.6906 0.7220 0.7570 0.7962 0.8387 0.8829 0.9266 0.9678 1.0049 1.0372 1.0645 1.0876 1.1072 1.1246 1.1407 1.1562 1.1717 1.1872 1.2021 1.2147 1.2219 1.2192 1.2019 1.1687 1.1264 1.0914 1.0736 1.0257 0.8599 - 0.2100 0.2769 0.3432 0.4062 0.4627 0.5110 0.5512 0.5856 0.6176 0.6508 0.6880 0.7305 0.7778 0.8277 0.8768 0.9218 0.9601 0.9905 1.0133 1.0301 1.0433 1.0553 1.0678 1.0815 1.0962 1.1115 1.1268 1.1421 1.1583 1.1768 1.1985 1.2219 1.2411 1.2454 1.2232 1.1727 1.1146 1.0809 1.0404 0.8625 - 0.2450 0.3176 0.3831 0.4401 0.4878 0.5282 0.5649 0.6023 0.6439 0.6910 0.7428 0.7963 0.8471 0.8910 0.9253 0.9493 0.9651 0.9765 0.9882 1.0043 1.0270 1.0562 1.0896 1.1234 1.1535 1.1761 1.1891 1.1924 1.1887 1.1834 1.1843 1.1980 1.2245 1.2517 1.2553 1.2149 1.1421 1.0884 1.0507 0.8650 - 0.2731 0.3436 0.4034 0.4538 0.4977 0.5396 0.5837 0.6327 0.6868 0.7431 0.7968 0.8431 0.8783 0.9019 0.9166 0.9285 0.9448 0.9716 1.0126 1.0671 1.1309 1.1973 1.2593 1.3112 1.3495 1.3724 1.3784 1.3658 1.3345 1.2889 1.2411 1.2095 1.2095 1.2381 1.2644 1.2445 1.1685 1.0963 1.0576 0.8673 - 0.2890 0.3557 0.4113 0.4600 0.5065 0.5553 0.6090 0.6670 0.7257 0.7796 0.8234 0.8542 0.8733 0.8862 0.9018 0.9294 0.9759 1.0427 1.1249 1.2124 1.2932 1.3579 1.4031 1.4322 1.4530 1.4724 1.4902 1.4974 1.4795 1.4267 1.3459 1.2643 1.2183 1.2260 1.2611 1.2610 1.1892 1.1036 1.0620 0.8690 - 0.2959 0.3603 0.4146 0.4645 0.5151 0.5698 0.6292 0.6903 0.7475 0.7949 0.8286 0.8493 0.8627 0.8786 0.9084 0.9605 1.0368 1.1304 1.2270 1.3086 1.3600 1.3757 1.3630 1.3411 1.3338 1.3581 1.4138 1.4797 1.5207 1.5057 1.4292 1.3221 1.2393 1.2221 1.2557 1.2682 1.2020 1.1087 1.0644 0.8701 - 0.2978 0.3614 0.4157 0.4664 0.5187 0.5755 0.6366 0.6981 0.7539 0.7983 0.8283 0.8462 0.8592 0.8787 0.9160 0.9785 1.0650 1.1650 1.2600 1.3293 1.3576 1.3422 1.2968 1.2484 1.2282 1.2577 1.3363 1.4364 1.5128 1.5239 1.4576 1.3453 1.2497 1.2220 1.2535 1.2701 1.2063 1.1106 1.0652 0.8705 - 1.1319 1.2209 1.2915 1.3732 1.4705 1.5704 1.6515 1.6947 1.6911 1.6460 1.5769 1.5069 1.4571 1.4387 1.4492 1.4741 1.4926 1.4862 1.4470 1.3813 1.3068 1.2456 1.2134 1.2112 1.2244 1.2291 1.2054 1.1500 1.0807 1.0271 1.0100 1.0225 1.0290 0.9933 0.9205 0.8690 0.8864 0.9066 0.8267 0.8794 - 1.1057 1.1976 1.2748 1.3637 1.4661 1.5675 1.6464 1.6851 1.6769 1.6288 1.5593 1.4919 1.4463 1.4322 1.4458 1.4716 1.4888 1.4799 1.4384 1.3717 1.2982 1.2395 1.2102 1.2100 1.2235 1.2268 1.2012 1.1447 1.0760 1.0244 1.0095 1.0229 1.0284 0.9912 0.9183 0.8683 0.8868 0.9060 0.8259 0.8796 - 1.0326 1.1361 1.2335 1.3421 1.4563 1.5584 1.6282 1.6528 1.6314 1.5763 1.5082 1.4497 1.4172 1.4156 1.4370 1.4638 1.4760 1.4594 1.4115 1.3429 1.2733 1.2226 1.2017 1.2070 1.2205 1.2194 1.1880 1.1286 1.0622 1.0170 1.0084 1.0238 1.0262 0.9847 0.9117 0.8667 0.8883 0.9040 0.8236 0.8800 - 0.9335 1.0626 1.1912 1.3231 1.4448 1.5374 1.5863 1.5874 1.5491 1.4894 1.4304 1.3907 1.3800 1.3958 1.4249 1.4486 1.4500 1.4206 1.3644 1.2962 1.2358 1.1992 1.1915 1.2032 1.2144 1.2048 1.1645 1.1021 1.0411 1.0068 1.0076 1.0246 1.0211 0.9732 0.9015 0.8650 0.8908 0.9005 0.8201 0.8807 - 0.8487 1.0131 1.1701 1.3118 1.4217 1.4866 1.5030 1.4785 1.4300 1.3785 1.3423 1.3321 1.3475 1.3783 1.4078 1.4194 1.4029 1.3585 1.2971 1.2363 1.1930 1.1763 1.1831 1.1983 1.2021 1.1795 1.1292 1.0666 1.0160 0.9968 1.0079 1.0240 1.0111 0.9560 0.8887 0.8644 0.8944 0.8950 0.8157 0.8816 - 0.8164 1.0036 1.1627 1.2834 1.3562 1.3808 1.3667 1.3310 1.2932 1.2696 1.2693 1.2913 1.3260 1.3586 1.3743 1.3639 1.3270 1.2728 1.2166 1.1743 1.1557 1.1604 1.1771 1.1882 1.1778 1.1397 1.0825 1.0262 0.9925 0.9907 1.0092 1.0193 0.9937 0.9332 0.8754 0.8664 0.8983 0.8869 0.8110 0.8826 - 0.8243 0.9957 1.1183 1.1916 1.2203 1.2167 1.1979 1.1809 1.1784 1.1956 1.2292 1.2692 1.3025 1.3171 1.3067 1.2728 1.2244 1.1755 1.1398 1.1258 1.1330 1.1519 1.1671 1.1637 1.1346 1.0845 1.0293 0.9888 0.9766 0.9901 1.0091 1.0064 0.9673 0.9065 0.8644 0.8717 0.9013 0.8758 0.8069 0.8836 - 0.7964 0.9172 0.9887 1.0240 1.0373 1.0437 1.0560 1.0811 1.1194 1.1649 1.2076 1.2369 1.2453 1.2305 1.1971 1.1548 1.1161 1.0919 1.0876 1.1011 1.1230 1.1398 1.1391 1.1148 1.0708 1.0202 0.9801 0.9637 0.9723 0.9926 1.0019 0.9815 0.9323 0.8796 0.8588 0.8800 0.9013 0.8614 0.8044 0.8844 - 0.6761 0.7557 0.8082 0.8497 0.8908 0.9376 0.9910 1.0469 1.0979 1.1361 1.1553 1.1534 1.1331 1.1017 1.0691 1.0453 1.0372 1.0461 1.0673 1.0913 1.1065 1.1039 1.0804 1.0407 0.9966 0.9623 0.9484 0.9564 0.9762 0.9899 0.9803 0.9432 0.8932 0.8586 0.8609 0.8892 0.8957 0.8443 0.8044 0.8848 - 0.5231 0.6074 0.6851 0.7625 0.8394 0.9115 0.9730 1.0183 1.0437 1.0490 1.0376 1.0163 0.9933 0.9771 0.9734 0.9842 1.0065 1.0335 1.0559 1.0653 1.0568 1.0311 0.9950 0.9592 0.9348 0.9288 0.9407 0.9611 0.9755 0.9701 0.9405 0.8964 0.8590 0.8493 0.8701 0.8950 0.8826 0.8263 0.8078 0.8848 - 0.4523 0.5625 0.6636 0.7532 0.8263 0.8788 0.9094 0.9202 0.9161 0.9043 0.8926 0.8876 0.8937 0.9119 0.9393 0.9699 0.9963 1.0116 1.0113 0.9953 0.9680 0.9373 0.9126 0.9014 0.9066 0.9246 0.9461 0.9589 0.9532 0.9269 0.8881 0.8534 0.8401 0.8541 0.8816 0.8920 0.8615 0.8101 0.8152 0.8842 - 0.4617 0.5664 0.6485 0.7080 0.7457 0.7649 0.7715 0.7728 0.7756 0.7851 0.8041 0.8322 0.8660 0.9002 0.9287 0.9462 0.9495 0.9391 0.9187 0.8947 0.8748 0.8653 0.8694 0.8859 0.9088 0.9290 0.9374 0.9283 0.9027 0.8688 0.8402 0.8295 0.8415 0.8675 0.8863 0.8761 0.8351 0.7993 0.8264 0.8828 - 0.4329 0.5021 0.5501 0.5832 0.6074 0.6285 0.6514 0.6794 0.7131 0.7511 0.7899 0.8252 0.8524 0.8683 0.8719 0.8644 0.8498 0.8336 0.8216 0.8186 0.8269 0.8452 0.8692 0.8920 0.9063 0.9069 0.8927 0.8675 0.8399 0.8203 0.8170 0.8316 0.8565 0.8765 0.8755 0.8478 0.8096 0.7974 0.8403 0.8806 - 0.3341 0.3882 0.4353 0.4809 0.5275 0.5754 0.6236 0.6695 0.7103 0.7430 0.7655 0.7771 0.7789 0.7735 0.7651 0.7581 0.7568 0.7638 0.7797 0.8026 0.8286 0.8520 0.8677 0.8718 0.8634 0.8453 0.8233 0.8051 0.7976 0.8046 0.8242 0.8487 0.8665 0.8668 0.8464 0.8146 0.7931 0.8059 0.8549 0.8775 - 0.2709 0.3405 0.4074 0.4711 0.5294 0.5793 0.6188 0.6469 0.6639 0.6718 0.6733 0.6722 0.6722 0.6768 0.6879 0.7064 0.7310 0.7589 0.7861 0.8085 0.8225 0.8261 0.8197 0.8060 0.7899 0.7769 0.7722 0.7789 0.7962 0.8197 0.8421 0.8549 0.8522 0.8342 0.8084 0.7892 0.7922 0.8235 0.8674 0.8737 - 0.2838 0.3565 0.4180 0.4677 0.5048 0.5302 0.5459 0.5554 0.5623 0.5703 0.5823 0.6001 0.6239 0.6525 0.6834 0.7135 0.7393 0.7580 0.7679 0.7690 0.7629 0.7529 0.7430 0.7375 0.7396 0.7507 0.7697 0.7933 0.8161 0.8323 0.8374 0.8299 0.8125 0.7926 0.7800 0.7840 0.8080 0.8449 0.8753 0.8693 - 0.2788 0.3290 0.3667 0.3952 0.4175 0.4370 0.4568 0.4791 0.5054 0.5358 0.5689 0.6028 0.6348 0.6622 0.6829 0.6957 0.7009 0.6999 0.6953 0.6905 0.6887 0.6926 0.7036 0.7215 0.7443 0.7688 0.7907 0.8061 0.8125 0.8090 0.7976 0.7829 0.7708 0.7677 0.7780 0.8017 0.8335 0.8628 0.8766 0.8646 - 0.2175 0.2571 0.2931 0.3287 0.3655 0.4037 0.4427 0.4814 0.5179 0.5505 0.5775 0.5979 0.6114 0.6187 0.6215 0.6220 0.6229 0.6267 0.6354 0.6500 0.6701 0.6943 0.7199 0.7439 0.7631 0.7754 0.7796 0.7763 0.7680 0.7581 0.7509 0.7502 0.7587 0.7769 0.8027 0.8312 0.8559 0.8705 0.8712 0.8599 - 0.1836 0.2356 0.2867 0.3362 0.3823 0.4233 0.4576 0.4845 0.5042 0.5175 0.5260 0.5319 0.5375 0.5448 0.5557 0.5711 0.5913 0.6156 0.6422 0.6691 0.6937 0.7140 0.7281 0.7354 0.7365 0.7330 0.7274 0.7228 0.7223 0.7279 0.7407 0.7602 0.7844 0.8103 0.8343 0.8528 0.8634 0.8655 0.8611 0.8556 - 0.2054 0.2599 0.3068 0.3456 0.3760 0.3984 0.4146 0.4266 0.4371 0.4485 0.4627 0.4808 0.5032 0.5294 0.5581 0.5874 0.6151 0.6395 0.6588 0.6724 0.6802 0.6831 0.6827 0.6813 0.6811 0.6843 0.6924 0.7062 0.7253 0.7485 0.7736 0.7981 0.8195 0.8362 0.8471 0.8525 0.8535 0.8519 0.8503 0.8521 - 0.2061 0.2443 0.2740 0.2981 0.3186 0.3380 0.3582 0.3808 0.4066 0.4353 0.4662 0.4976 0.5279 0.5552 0.5782 0.5958 0.6079 0.6153 0.6192 0.6216 0.6244 0.6295 0.6384 0.6518 0.6699 0.6918 0.7164 0.7419 0.7664 0.7881 0.8058 0.8188 0.8272 0.8318 0.8339 0.8351 0.8367 0.8395 0.8436 0.8497 - 0.1650 0.1978 0.2292 0.2612 0.2948 0.3297 0.3652 0.4001 0.4330 0.4626 0.4878 0.5080 0.5233 0.5343 0.5420 0.5481 0.5544 0.5626 0.5740 0.5895 0.6092 0.6326 0.6585 0.6853 0.7115 0.7355 0.7560 0.7725 0.7847 0.7933 0.7990 0.8031 0.8066 0.8107 0.8162 0.8233 0.8314 0.8395 0.8455 0.8488 - 0.1499 0.1947 0.2391 0.2822 0.3224 0.3581 0.3881 0.4120 0.4303 0.4440 0.4546 0.4639 0.4736 0.4854 0.5003 0.5191 0.5416 0.5674 0.5953 0.6239 0.6518 0.6774 0.6997 0.7181 0.7324 0.7430 0.7509 0.7572 0.7631 0.7698 0.7781 0.7882 0.8002 0.8135 0.8275 0.8409 0.8521 0.8589 0.8585 0.8495 - 0.1751 0.2222 0.2628 0.2966 0.3233 0.3438 0.3596 0.3728 0.3857 0.4003 0.4180 0.4397 0.4652 0.4939 0.5245 0.5554 0.5851 0.6121 0.6355 0.6549 0.6703 0.6825 0.6923 0.7009 0.7097 0.7196 0.7316 0.7462 0.7632 0.7825 0.8033 0.8246 0.8453 0.8643 0.8805 0.8927 0.8990 0.8969 0.8821 0.8518 - 0.1808 0.2152 0.2424 0.2651 0.2854 0.3056 0.3275 0.3522 0.3802 0.4111 0.4437 0.4767 0.5084 0.5373 0.5624 0.5833 0.6000 0.6135 0.6251 0.6360 0.6479 0.6618 0.6786 0.6987 0.7218 0.7476 0.7751 0.8034 0.8316 0.8588 0.8840 0.9066 0.9259 0.9416 0.9530 0.9590 0.9577 0.9450 0.9135 0.8558 - 0.1536 0.1844 0.2142 0.2454 0.2789 0.3144 0.3509 0.3871 0.4215 0.4527 0.4798 0.5026 0.5214 0.5370 0.5508 0.5645 0.5795 0.5973 0.6187 0.6440 0.6729 0.7049 0.7386 0.7730 0.8068 0.8390 0.8689 0.8961 0.9205 0.9420 0.9608 0.9770 0.9905 1.0014 1.0091 1.0125 1.0086 0.9914 0.9482 0.8612 - 0.1435 0.1862 0.2297 0.2734 0.3153 0.3535 0.3866 0.4140 0.4361 0.4543 0.4702 0.4859 0.5033 0.5241 0.5491 0.5786 0.6122 0.6490 0.6876 0.7265 0.7642 0.7997 0.8321 0.8612 0.8868 0.9095 0.9296 0.9477 0.9642 0.9795 0.9935 1.0062 1.0176 1.0274 1.0354 1.0406 1.0403 1.0271 0.9815 0.8677 - 0.1679 0.2180 0.2633 0.3027 0.3353 0.3614 0.3825 0.4012 0.4200 0.4415 0.4673 0.4984 0.5346 0.5747 0.6171 0.6599 0.7011 0.7394 0.7739 0.8043 0.8310 0.8547 0.8763 0.8965 0.9161 0.9354 0.9545 0.9732 0.9910 1.0073 1.0216 1.0332 1.0421 1.0483 1.0523 1.0550 1.0559 1.0492 1.0099 0.8750 - 0.1906 0.2338 0.2690 0.2979 0.3231 0.3474 0.3737 0.4041 0.4397 0.4802 0.5243 0.5701 0.6153 0.6578 0.6961 0.7298 0.7590 0.7849 0.8089 0.8323 0.8564 0.8819 0.9090 0.9372 0.9657 0.9937 1.0202 1.0442 1.0649 1.0817 1.0939 1.1009 1.1022 1.0978 1.0886 1.0772 1.0678 1.0610 1.0316 0.8827 - 0.1880 0.2242 0.2565 0.2891 0.3246 0.3646 0.4091 0.4569 0.5058 0.5534 0.5975 0.6369 0.6711 0.7011 0.7284 0.7549 0.7826 0.8127 0.8460 0.8820 0.9199 0.9581 0.9952 1.0299 1.0613 1.0890 1.1130 1.1336 1.1510 1.1653 1.1757 1.1814 1.1802 1.1699 1.1488 1.1186 1.0877 1.0689 1.0467 0.8904 - 0.1777 0.2193 0.2633 0.3117 0.3641 0.4183 0.4714 0.5206 0.5641 0.6015 0.6336 0.6627 0.6915 0.7226 0.7577 0.7972 0.8404 0.8854 0.9297 0.9711 1.0078 1.0389 1.0645 1.0855 1.1030 1.1183 1.1329 1.1475 1.1627 1.1789 1.1956 1.2113 1.2229 1.2248 1.2093 1.1716 1.1191 1.0781 1.0565 0.8977 - 0.1831 0.2384 0.2970 0.3575 0.4164 0.4702 0.5168 0.5557 0.5887 0.6191 0.6505 0.6861 0.7274 0.7740 0.8238 0.8733 0.9187 0.9571 0.9870 1.0088 1.0246 1.0368 1.0483 1.0608 1.0749 1.0904 1.1064 1.1219 1.1367 1.1517 1.1685 1.1892 1.2136 1.2365 1.2443 1.2192 1.1568 1.0910 1.0626 0.9044 - 0.2052 0.2716 0.3371 0.3986 0.4527 0.4980 0.5357 0.5691 0.6027 0.6404 0.6845 0.7345 0.7878 0.8397 0.8854 0.9213 0.9462 0.9620 0.9729 0.9842 1.0007 1.0251 1.0573 1.0943 1.1317 1.1649 1.1898 1.2042 1.2075 1.2015 1.1914 1.1856 1.1938 1.2192 1.2486 1.2490 1.1925 1.1067 1.0664 0.9102 - 0.2310 0.3015 0.3660 0.4223 0.4693 0.5090 0.5454 0.5834 0.6267 0.6767 0.7313 0.7862 0.8356 0.8746 0.9011 0.9168 0.9273 0.9407 0.9645 1.0040 1.0593 1.1261 1.1965 1.2621 1.3162 1.3557 1.3798 1.3884 1.3796 1.3510 1.3040 1.2496 1.2096 1.2057 1.2365 1.2606 1.2203 1.1227 1.0690 0.9149 - 0.2506 0.3206 0.3814 0.4327 0.4762 0.5159 0.5569 0.6031 0.6557 0.7123 0.7680 0.8164 0.8527 0.8755 0.8887 0.9004 0.9209 0.9596 1.0208 1.1016 1.1923 1.2792 1.3495 1.3970 1.4238 1.4398 1.4557 1.4752 1.4900 1.4817 1.4344 1.3507 1.2612 1.2115 1.2243 1.2610 1.2384 1.1362 1.0707 0.9184 - 0.2615 0.3300 0.3880 0.4369 0.4799 0.5220 0.5679 0.6198 0.6769 0.7345 0.7862 0.8263 0.8523 0.8672 0.8790 0.8995 0.9399 1.0060 1.0952 1.1952 1.2870 1.3516 1.3776 1.3676 1.3396 1.3206 1.3343 1.3870 1.4597 1.5127 1.5062 1.4284 1.3131 1.2271 1.2183 1.2581 1.2479 1.1451 1.0718 0.9205 - 0.2649 0.3327 0.3898 0.4381 0.4814 0.5246 0.5723 0.6262 0.6843 0.7414 0.7911 0.8278 0.8506 0.8637 0.8770 0.9030 0.9523 1.0287 1.1260 1.2277 1.3116 1.3572 1.3551 1.3133 1.2573 1.2222 1.2374 1.3099 1.4151 1.5031 1.5227 1.4548 1.3339 1.2349 1.2169 1.2567 1.2509 1.1481 1.0722 0.9212 - 0.8816 1.0043 1.1306 1.2617 1.3810 1.4678 1.5076 1.4987 1.4530 1.3920 1.3389 1.3113 1.3148 1.3421 1.3757 1.3953 1.3861 1.3450 1.2821 1.2166 1.1689 1.1507 1.1590 1.1771 1.1821 1.1574 1.1030 1.0382 0.9911 0.9807 1.0002 1.0168 0.9939 0.9280 0.8642 0.8589 0.8963 0.8718 0.7988 0.8858 - 0.8672 0.9953 1.1267 1.2602 1.3785 1.4617 1.4968 1.4840 1.4367 1.3768 1.3271 1.3037 1.3110 1.3401 1.3734 1.3909 1.3790 1.3359 1.2726 1.2088 1.1640 1.1486 1.1586 1.1765 1.1799 1.1532 1.0978 1.0335 0.9884 0.9801 1.0005 1.0162 0.9919 0.9255 0.8631 0.8596 0.8966 0.8706 0.7986 0.8857 - 0.8311 0.9748 1.1188 1.2564 1.3693 1.4402 1.4613 1.4384 1.3882 1.3335 1.2947 1.2841 1.3013 1.3347 1.3657 1.3763 1.3565 1.3081 1.2450 1.1866 1.1504 1.1431 1.1574 1.1743 1.1725 1.1400 1.0820 1.0201 0.9811 0.9788 1.0012 1.0140 0.9852 0.9180 0.8603 0.8617 0.8974 0.8670 0.7983 0.8854 - 0.7935 0.9584 1.1141 1.2488 1.3454 1.3934 1.3939 1.3597 1.3114 1.2701 1.2514 1.2601 1.2900 1.3256 1.3493 1.3471 1.3153 1.2613 1.2014 1.1543 1.1325 1.1369 1.1555 1.1685 1.1576 1.1166 1.0562 1.0000 0.9715 0.9780 1.0019 1.0088 0.9731 0.9059 0.8564 0.8654 0.8982 0.8609 0.7981 0.8849 - 0.7770 0.9565 1.1094 1.2237 1.2899 1.3081 1.2896 1.2531 1.2189 1.2027 1.2112 1.2406 1.2784 1.3085 1.3168 1.2969 1.2529 1.1976 1.1482 1.1192 1.1159 1.1320 1.1514 1.1553 1.1316 1.0819 1.0226 0.9771 0.9630 0.9788 1.0012 0.9984 0.9544 0.8899 0.8529 0.8710 0.8982 0.8523 0.7985 0.8842 - 0.7840 0.9542 1.0791 1.1553 1.1853 1.1807 1.1591 1.1392 1.1348 1.1515 1.1857 1.2263 1.2591 1.2717 1.2581 1.2212 1.1720 1.1258 1.0965 1.0907 1.1052 1.1272 1.1397 1.1288 1.0912 1.0369 0.9855 0.9568 0.9590 0.9811 0.9967 0.9805 0.9292 0.8720 0.8516 0.8781 0.8960 0.8414 0.8002 0.8830 - 0.7771 0.9088 0.9892 1.0277 1.0376 1.0355 1.0368 1.0518 1.0832 1.1260 1.1697 1.2021 1.2139 1.2013 1.1683 1.1254 1.0860 1.0620 1.0594 1.0753 1.0988 1.1153 1.1118 1.0835 1.0366 0.9869 0.9525 0.9449 0.9610 0.9823 0.9843 0.9531 0.8990 0.8556 0.8542 0.8856 0.8902 0.8287 0.8036 0.8815 - 0.7050 0.7914 0.8409 0.8705 0.8945 0.9237 0.9634 1.0121 1.0632 1.1072 1.1350 1.1413 1.1262 1.0957 1.0601 1.0311 1.0176 1.0229 1.0430 1.0679 1.0849 1.0836 1.0601 1.0197 0.9752 0.9424 0.9320 0.9440 0.9655 0.9762 0.9599 0.9168 0.8681 0.8449 0.8615 0.8913 0.8792 0.8152 0.8095 0.8795 - 0.5712 0.6418 0.6989 0.7551 0.8153 0.8791 0.9417 0.9958 1.0342 1.0526 1.0505 1.0322 1.0059 0.9811 0.9668 0.9680 0.9843 1.0099 1.0350 1.0494 1.0457 1.0229 0.9869 0.9492 0.9226 0.9156 0.9279 0.9494 0.9634 0.9554 0.9220 0.8764 0.8435 0.8435 0.8717 0.8915 0.8623 0.8029 0.8180 0.8769 - 0.4575 0.5482 0.6358 0.7213 0.8004 0.8668 0.9149 0.9420 0.9488 0.9400 0.9229 0.9062 0.8975 0.9018 0.9194 0.9466 0.9758 0.9982 1.0066 0.9975 0.9731 0.9409 0.9112 0.8940 0.8946 0.9109 0.9332 0.9479 0.9432 0.9160 0.8755 0.8411 0.8318 0.8515 0.8805 0.8829 0.8405 0.7943 0.8291 0.8737 - 0.4301 0.5390 0.6348 0.7138 0.7720 0.8078 0.8232 0.8236 0.8166 0.8100 0.8107 0.8225 0.8456 0.8767 0.9096 0.9368 0.9519 0.9516 0.9365 0.9118 0.8856 0.8667 0.8616 0.8718 0.8931 0.9159 0.9289 0.9239 0.8996 0.8643 0.8333 0.8219 0.8358 0.8641 0.8811 0.8634 0.8168 0.7918 0.8418 0.8701 - 0.4406 0.5318 0.5991 0.6443 0.6707 0.6839 0.6909 0.6986 0.7125 0.7351 0.7661 0.8021 0.8376 0.8669 0.8848 0.8889 0.8801 0.8624 0.8424 0.8273 0.8229 0.8316 0.8513 0.8757 0.8962 0.9045 0.8961 0.8727 0.8426 0.8182 0.8106 0.8238 0.8499 0.8709 0.8674 0.8350 0.7968 0.7975 0.8549 0.8659 - 0.3938 0.4520 0.4927 0.5233 0.5497 0.5769 0.6083 0.6448 0.6849 0.7254 0.7618 0.7900 0.8069 0.8118 0.8063 0.7945 0.7818 0.7740 0.7752 0.7873 0.8084 0.8339 0.8571 0.8712 0.8718 0.8585 0.8358 0.8121 0.7969 0.7973 0.8139 0.8392 0.8596 0.8612 0.8389 0.8047 0.7866 0.8112 0.8662 0.8616 - 0.3005 0.3530 0.4016 0.4507 0.5013 0.5523 0.6012 0.6447 0.6800 0.7047 0.7184 0.7222 0.7189 0.7128 0.7084 0.7099 0.7198 0.7384 0.7635 0.7908 0.8149 0.8307 0.8349 0.8272 0.8108 0.7917 0.7773 0.7740 0.7843 0.8059 0.8308 0.8485 0.8495 0.8317 0.8035 0.7832 0.7907 0.8305 0.8735 0.8571 - 0.2566 0.3257 0.3918 0.4537 0.5083 0.5529 0.5859 0.6071 0.6182 0.6221 0.6226 0.6239 0.6295 0.6419 0.6617 0.6877 0.7170 0.7455 0.7688 0.7836 0.7880 0.7827 0.7707 0.7570 0.7471 0.7459 0.7557 0.7753 0.8000 0.8224 0.8348 0.8323 0.8157 0.7927 0.7764 0.7800 0.8085 0.8502 0.8752 0.8530 - 0.2732 0.3413 0.3976 0.4416 0.4733 0.4942 0.5070 0.5158 0.5244 0.5362 0.5536 0.5772 0.6060 0.6378 0.6692 0.6966 0.7170 0.7285 0.7310 0.7264 0.7181 0.7102 0.7071 0.7118 0.7254 0.7465 0.7712 0.7943 0.8100 0.8146 0.8072 0.7913 0.7742 0.7652 0.7721 0.7970 0.8331 0.8641 0.8708 0.8495 - 0.2630 0.3088 0.3429 0.3689 0.3903 0.4105 0.4322 0.4574 0.4869 0.5197 0.5542 0.5876 0.6171 0.6402 0.6556 0.6631 0.6639 0.6608 0.6572 0.6566 0.6618 0.6743 0.6938 0.7182 0.7437 0.7662 0.7816 0.7875 0.7838 0.7732 0.7604 0.7518 0.7528 0.7668 0.7927 0.8248 0.8532 0.8672 0.8614 0.8471 - 0.2050 0.2426 0.2775 0.3130 0.3502 0.3890 0.4284 0.4667 0.5019 0.5321 0.5558 0.5724 0.5824 0.5871 0.5888 0.5902 0.5943 0.6031 0.6179 0.6386 0.6636 0.6903 0.7154 0.7356 0.7484 0.7529 0.7500 0.7423 0.7339 0.7294 0.7324 0.7451 0.7669 0.7948 0.8233 0.8464 0.8590 0.8589 0.8500 0.8460 - 0.1753 0.2255 0.2751 0.3234 0.3683 0.4076 0.4400 0.4646 0.4820 0.4932 0.5005 0.5061 0.5127 0.5224 0.5367 0.5561 0.5801 0.6073 0.6352 0.6613 0.6831 0.6986 0.7072 0.7092 0.7065 0.7019 0.6988 0.7003 0.7088 0.7249 0.7477 0.7745 0.8014 0.8245 0.8407 0.8485 0.8487 0.8445 0.8411 0.8467 - 0.1958 0.2486 0.2940 0.3315 0.3605 0.3817 0.3968 0.4081 0.4184 0.4303 0.4457 0.4656 0.4900 0.5180 0.5478 0.5773 0.6039 0.6258 0.6418 0.6515 0.6559 0.6565 0.6557 0.6563 0.6605 0.6702 0.6861 0.7076 0.7330 0.7599 0.7852 0.8064 0.8214 0.8299 0.8330 0.8328 0.8322 0.8337 0.8393 0.8493 - 0.1988 0.2360 0.2648 0.2877 0.3071 0.3254 0.3450 0.3674 0.3932 0.4223 0.4535 0.4850 0.5149 0.5412 0.5624 0.5779 0.5879 0.5935 0.5966 0.5994 0.6042 0.6128 0.6265 0.6454 0.6688 0.6950 0.7222 0.7478 0.7701 0.7874 0.7994 0.8063 0.8097 0.8114 0.8137 0.8184 0.8263 0.8369 0.8480 0.8540 - 0.1618 0.1924 0.2214 0.2512 0.2829 0.3165 0.3512 0.3858 0.4185 0.4480 0.4729 0.4925 0.5069 0.5170 0.5241 0.5301 0.5371 0.5469 0.5608 0.5795 0.6026 0.6290 0.6572 0.6851 0.7107 0.7325 0.7496 0.7619 0.7701 0.7755 0.7797 0.7844 0.7911 0.8007 0.8135 0.8289 0.8453 0.8599 0.8684 0.8607 - 0.1425 0.1842 0.2262 0.2680 0.3078 0.3437 0.3743 0.3988 0.4175 0.4312 0.4416 0.4505 0.4599 0.4718 0.4873 0.5071 0.5311 0.5584 0.5877 0.6172 0.6451 0.6699 0.6904 0.7063 0.7180 0.7265 0.7331 0.7397 0.7477 0.7585 0.7725 0.7897 0.8097 0.8313 0.8532 0.8737 0.8905 0.9007 0.8987 0.8692 - 0.1634 0.2100 0.2513 0.2862 0.3142 0.3355 0.3514 0.3641 0.3760 0.3893 0.4058 0.4266 0.4518 0.4805 0.5115 0.5430 0.5730 0.6001 0.6230 0.6415 0.6558 0.6669 0.6761 0.6851 0.6955 0.7084 0.7248 0.7448 0.7684 0.7945 0.8221 0.8499 0.8764 0.9006 0.9216 0.9381 0.9486 0.9499 0.9347 0.8793 - 0.1760 0.2116 0.2395 0.2618 0.2806 0.2984 0.3174 0.3394 0.3651 0.3945 0.4265 0.4596 0.4920 0.5218 0.5477 0.5690 0.5859 0.5993 0.6107 0.6218 0.6344 0.6500 0.6695 0.6932 0.7206 0.7511 0.7835 0.8163 0.8485 0.8789 0.9067 0.9313 0.9525 0.9704 0.9847 0.9950 0.9999 0.9954 0.9712 0.8906 - 0.1549 0.1832 0.2093 0.2361 0.2652 0.2971 0.3314 0.3668 0.4016 0.4343 0.4633 0.4880 0.5081 0.5244 0.5383 0.5516 0.5662 0.5838 0.6056 0.6321 0.6630 0.6974 0.7340 0.7712 0.8074 0.8415 0.8727 0.9005 0.9250 0.9464 0.9651 0.9815 0.9959 1.0084 1.0191 1.0274 1.0319 1.0286 1.0035 0.9025 - 0.1367 0.1736 0.2123 0.2528 0.2937 0.3328 0.3681 0.3984 0.4232 0.4431 0.4596 0.4747 0.4905 0.5091 0.5320 0.5600 0.5931 0.6302 0.6700 0.7105 0.7501 0.7873 0.8211 0.8509 0.8770 0.8998 0.9201 0.9385 0.9557 0.9721 0.9875 1.0019 1.0148 1.0260 1.0352 1.0423 1.0471 1.0475 1.0287 0.9148 - 0.1503 0.1980 0.2436 0.2853 0.3213 0.3506 0.3738 0.3926 0.4097 0.4277 0.4493 0.4760 0.5086 0.5465 0.5882 0.6318 0.6749 0.7156 0.7525 0.7850 0.8132 0.8379 0.8602 0.8814 0.9023 0.9237 0.9455 0.9676 0.9893 1.0097 1.0280 1.0433 1.0547 1.0616 1.0639 1.0623 1.0592 1.0573 1.0460 0.9268 - 0.1761 0.2220 0.2605 0.2918 0.3171 0.3390 0.3604 0.3844 0.4133 0.4481 0.4885 0.5328 0.5789 0.6240 0.6659 0.7032 0.7355 0.7635 0.7885 0.8123 0.8367 0.8629 0.8914 0.9221 0.9540 0.9861 1.0170 1.0457 1.0713 1.0930 1.1105 1.1229 1.1296 1.1292 1.1205 1.1033 1.0817 1.0657 1.0567 0.9382 - 0.1847 0.2220 0.2525 0.2800 0.3078 0.3388 0.3750 0.4167 0.4626 0.5105 0.5577 0.6018 0.6410 0.6749 0.7044 0.7312 0.7577 0.7860 0.8176 0.8529 0.8915 0.9318 0.9721 1.0104 1.0452 1.0758 1.1020 1.1243 1.1435 1.1602 1.1748 1.1869 1.1952 1.1965 1.1864 1.1600 1.1186 1.0790 1.0630 0.9487 - 0.1765 0.2116 0.2459 0.2834 0.3259 0.3734 0.4240 0.4750 0.5232 0.5666 0.6041 0.6364 0.6654 0.6939 0.7246 0.7596 0.7994 0.8433 0.8892 0.9342 0.9758 1.0117 1.0412 1.0645 1.0826 1.0974 1.1106 1.1236 1.1373 1.1523 1.1689 1.1871 1.2061 1.2225 1.2287 1.2119 1.1632 1.0990 1.0672 0.9581 - 0.1703 0.2133 0.2602 0.3121 0.3674 0.4228 0.4746 0.5203 0.5590 0.5918 0.6215 0.6519 0.6861 0.7261 0.7719 0.8215 0.8712 0.9169 0.9555 0.9851 1.0062 1.0207 1.0319 1.0428 1.0555 1.0708 1.0882 1.1062 1.1231 1.1377 1.1504 1.1638 1.1818 1.2070 1.2337 1.2418 1.2042 1.1236 1.0707 0.9662 - 0.1768 0.2313 0.2897 0.3500 0.4081 0.4603 0.5044 0.5410 0.5728 0.6040 0.6389 0.6803 0.7285 0.7812 0.8336 0.8807 0.9181 0.9443 0.9606 0.9715 0.9826 0.9995 1.0251 1.0595 1.0999 1.1415 1.1792 1.2085 1.2260 1.2298 1.2201 1.2019 1.1867 1.1895 1.2166 1.2476 1.2336 1.1488 1.0745 0.9728 - 0.1922 0.2553 0.3192 0.3801 0.4343 0.4796 0.5170 0.5501 0.5838 0.6227 0.6689 0.7217 0.7769 0.8285 0.8707 0.9001 0.9175 0.9279 0.9397 0.9615 0.9995 1.0548 1.1229 1.1954 1.2631 1.3192 1.3613 1.3893 1.4032 1.3991 1.3710 1.3176 1.2520 1.2038 1.2021 1.2394 1.2501 1.1707 1.0783 0.9780 - 0.2080 0.2753 0.3398 0.3980 0.4472 0.4878 0.5232 0.5585 0.5987 0.6464 0.7007 0.7571 0.8089 0.8499 0.8768 0.8914 0.9011 0.9169 0.9497 1.0060 1.0848 1.1766 1.2663 1.3392 1.3868 1.4116 1.4255 1.4423 1.4678 1.4916 1.4895 1.4396 1.3449 1.2464 1.2017 1.2288 1.2569 1.1870 1.0816 0.9818 - 0.2188 0.2874 0.3509 0.4064 0.4526 0.4914 0.5276 0.5664 0.6120 0.6649 0.7220 0.7768 0.8223 0.8537 0.8711 0.8811 0.8953 0.9266 0.9841 1.0687 1.1698 1.2681 1.3413 1.3738 1.3650 1.3324 1.3066 1.3167 1.3729 1.4546 1.5149 1.5058 1.4150 1.2886 1.2095 1.2218 1.2588 1.1969 1.0840 0.9840 - 0.2225 0.2913 0.3543 0.4088 0.4541 0.4926 0.5294 0.5697 0.6171 0.6716 0.7291 0.7826 0.8254 0.8533 0.8681 0.8780 0.8958 0.9345 1.0019 1.0956 1.2010 1.2949 1.3528 1.3600 1.3204 1.2591 1.2152 1.2245 1.2985 1.4116 1.5060 1.5218 1.4391 1.3056 1.2139 1.2197 1.2590 1.2001 1.0848 0.9847 - 0.7528 0.9137 1.0647 1.1920 1.2786 1.3157 1.3075 1.2700 1.2249 1.1928 1.1860 1.2054 1.2406 1.2745 1.2901 1.2774 1.2375 1.1825 1.1304 1.0977 1.0918 1.1069 1.1265 1.1307 1.1067 1.0567 0.9984 0.9564 0.9472 0.9660 0.9865 0.9772 0.9284 0.8687 0.8460 0.8720 0.8846 0.8241 0.8046 0.8651 - 0.7495 0.9132 1.0646 1.1894 1.2717 1.3044 1.2934 1.2553 1.2123 1.1837 1.1809 1.2032 1.2394 1.2723 1.2855 1.2702 1.2288 1.1738 1.1235 1.0935 1.0901 1.1065 1.1258 1.1285 1.1028 1.0519 0.9942 0.9540 0.9466 0.9662 0.9860 0.9752 0.9257 0.8670 0.8462 0.8728 0.8842 0.8231 0.8051 0.8649 - 0.7436 0.9135 1.0633 1.1790 1.2481 1.2685 1.2503 1.2127 1.1769 1.1596 1.1679 1.1976 1.2354 1.2643 1.2702 1.2477 1.2024 1.1487 1.1043 1.0824 1.0859 1.1054 1.1231 1.1210 1.0902 1.0373 0.9821 0.9474 0.9455 0.9669 0.9841 0.9687 0.9174 0.8621 0.8469 0.8752 0.8827 0.8201 0.8066 0.8643 - 0.7435 0.9158 1.0556 1.1520 1.1994 1.2033 1.1793 1.1478 1.1272 1.1287 1.1529 1.1907 1.2269 1.2465 1.2399 1.2074 1.1589 1.1102 1.0770 1.0681 1.0811 1.1032 1.1163 1.1057 1.0678 1.0136 0.9640 0.9391 0.9451 0.9679 0.9796 0.9570 0.9038 0.8548 0.8486 0.8787 0.8796 0.8152 0.8093 0.8634 - 0.7506 0.9117 1.0273 1.0943 1.1169 1.1087 1.0883 1.0740 1.0777 1.1022 1.1410 1.1810 1.2081 1.2117 1.1897 1.1486 1.1019 1.0651 1.0490 1.0558 1.0772 1.0977 1.1014 1.0792 1.0345 0.9825 0.9436 0.9322 0.9467 0.9683 0.9706 0.9388 0.8854 0.8466 0.8518 0.8824 0.8741 0.8089 0.8134 0.8621 - 0.7474 0.8783 0.9582 0.9953 1.0029 0.9982 0.9977 1.0120 1.0434 1.0863 1.1292 1.1595 1.1680 1.1521 1.1174 1.0757 1.0408 1.0237 1.0281 1.0484 1.0719 1.0836 1.0729 1.0388 0.9915 0.9485 0.9260 0.9298 0.9503 0.9656 0.9548 0.9140 0.8642 0.8399 0.8570 0.8849 0.8653 0.8019 0.8191 0.8604 - 0.7017 0.7930 0.8426 0.8672 0.8828 0.9027 0.9343 0.9780 1.0274 1.0722 1.1021 1.1105 1.0966 1.0665 1.0310 1.0024 0.9899 0.9967 1.0180 1.0427 1.0577 1.0532 1.0267 0.9858 0.9447 0.9187 0.9161 0.9328 0.9527 0.9555 0.9298 0.8839 0.8440 0.8374 0.8641 0.8844 0.8526 0.7954 0.8263 0.8584 - 0.6000 0.6664 0.7121 0.7531 0.7985 0.8517 0.9095 0.9649 1.0089 1.0345 1.0387 1.0239 0.9974 0.9698 0.9512 0.9482 0.9617 0.9863 1.0117 1.0269 1.0237 1.0009 0.9650 0.9284 0.9044 0.9009 0.9160 0.9373 0.9475 0.9334 0.8959 0.8526 0.8295 0.8408 0.8712 0.8786 0.8363 0.7907 0.8350 0.8562 - 0.4817 0.5552 0.6250 0.6972 0.7705 0.8393 0.8963 0.9351 0.9528 0.9508 0.9349 0.9139 0.8971 0.8920 0.9018 0.9246 0.9533 0.9785 0.9910 0.9857 0.9634 0.9312 0.9003 0.8816 0.8815 0.8979 0.9205 0.9343 0.9273 0.8976 0.8571 0.8270 0.8249 0.8497 0.8750 0.8656 0.8177 0.7898 0.8447 0.8538 - 0.4153 0.5130 0.6059 0.6912 0.7624 0.8140 0.8436 0.8527 0.8469 0.8342 0.8233 0.8215 0.8327 0.8562 0.8872 0.9179 0.9401 0.9474 0.9379 0.9151 0.8869 0.8633 0.8528 0.8590 0.8787 0.9022 0.9169 0.9129 0.8886 0.8529 0.8227 0.8141 0.8314 0.8596 0.8707 0.8449 0.8000 0.7941 0.8543 0.8514 - 0.4161 0.5188 0.6035 0.6674 0.7087 0.7295 0.7351 0.7331 0.7317 0.7375 0.7540 0.7812 0.8151 0.8494 0.8769 0.8919 0.8918 0.8781 0.8564 0.8349 0.8217 0.8220 0.8364 0.8598 0.8828 0.8955 0.8909 0.8692 0.8384 0.8122 0.8037 0.8174 0.8440 0.8630 0.8547 0.8189 0.7872 0.8043 0.8627 0.8492 - 0.4160 0.4924 0.5453 0.5789 0.5988 0.6116 0.6244 0.6425 0.6685 0.7021 0.7398 0.7763 0.8060 0.8242 0.8291 0.8218 0.8068 0.7908 0.7804 0.7809 0.7937 0.8160 0.8414 0.8616 0.8694 0.8613 0.8401 0.8141 0.7945 0.7908 0.8054 0.8310 0.8520 0.8523 0.8275 0.7938 0.7838 0.8196 0.8682 0.8474 - 0.3546 0.4044 0.4412 0.4725 0.5038 0.5385 0.5778 0.6201 0.6623 0.7002 0.7295 0.7476 0.7538 0.7501 0.7407 0.7311 0.7267 0.7317 0.7470 0.7707 0.7976 0.8211 0.8351 0.8356 0.8232 0.8028 0.7828 0.7718 0.7758 0.7945 0.8202 0.8405 0.8434 0.8252 0.7958 0.7775 0.7919 0.8372 0.8697 0.8463 - 0.2719 0.3245 0.3757 0.4283 0.4817 0.5334 0.5801 0.6184 0.6460 0.6622 0.6681 0.6668 0.6626 0.6602 0.6637 0.6757 0.6963 0.7231 0.7517 0.7766 0.7929 0.7977 0.7910 0.7763 0.7599 0.7489 0.7489 0.7620 0.7852 0.8105 0.8281 0.8298 0.8143 0.7897 0.7718 0.7772 0.8103 0.8526 0.8665 0.8462 - 0.2456 0.3141 0.3787 0.4375 0.4872 0.5255 0.5516 0.5665 0.5731 0.5754 0.5777 0.5839 0.5967 0.6171 0.6440 0.6744 0.7041 0.7286 0.7445 0.7501 0.7461 0.7358 0.7243 0.7170 0.7186 0.7309 0.7524 0.7780 0.8004 0.8125 0.8104 0.7955 0.7755 0.7623 0.7672 0.7937 0.8324 0.8613 0.8591 0.8474 - 0.2633 0.3266 0.3776 0.4161 0.4428 0.4600 0.4712 0.4806 0.4921 0.5086 0.5314 0.5599 0.5921 0.6246 0.6537 0.6760 0.6895 0.6939 0.6910 0.6841 0.6778 0.6763 0.6828 0.6983 0.7210 0.7469 0.7704 0.7861 0.7904 0.7835 0.7692 0.7550 0.7494 0.7590 0.7846 0.8192 0.8493 0.8603 0.8494 0.8503 - 0.2482 0.2900 0.3209 0.3451 0.3662 0.3874 0.4114 0.4395 0.4716 0.5061 0.5405 0.5720 0.5978 0.6160 0.6261 0.6291 0.6275 0.6249 0.6249 0.6307 0.6439 0.6643 0.6897 0.7164 0.7397 0.7557 0.7619 0.7586 0.7488 0.7378 0.7320 0.7365 0.7536 0.7813 0.8131 0.8397 0.8530 0.8503 0.8407 0.8549 - 0.1936 0.2296 0.2638 0.2992 0.3368 0.3761 0.4155 0.4530 0.4864 0.5137 0.5339 0.5469 0.5539 0.5570 0.5589 0.5628 0.5711 0.5854 0.6059 0.6313 0.6588 0.6851 0.7066 0.7206 0.7262 0.7241 0.7174 0.7104 0.7077 0.7134 0.7291 0.7537 0.7831 0.8115 0.8328 0.8432 0.8428 0.8371 0.8371 0.8615 - 0.1679 0.2164 0.2647 0.3118 0.3553 0.3931 0.4234 0.4459 0.4610 0.4706 0.4769 0.4828 0.4909 0.5033 0.5210 0.5441 0.5711 0.5998 0.6275 0.6511 0.6687 0.6790 0.6825 0.6809 0.6773 0.6752 0.6781 0.6883 0.7066 0.7316 0.7601 0.7878 0.8103 0.8247 0.8303 0.8295 0.8272 0.8295 0.8420 0.8700 - 0.1871 0.2383 0.2825 0.3188 0.3466 0.3666 0.3806 0.3912 0.4015 0.4139 0.4305 0.4520 0.4782 0.5075 0.5380 0.5668 0.5917 0.6107 0.6232 0.6295 0.6313 0.6312 0.6320 0.6365 0.6467 0.6636 0.6865 0.7136 0.7418 0.7679 0.7889 0.8030 0.8102 0.8121 0.8120 0.8140 0.8216 0.8363 0.8576 0.8803 - 0.1921 0.2287 0.2566 0.2785 0.2968 0.3141 0.3330 0.3549 0.3808 0.4100 0.4414 0.4729 0.5022 0.5274 0.5469 0.5604 0.5685 0.5728 0.5757 0.5798 0.5874 0.6001 0.6187 0.6425 0.6699 0.6984 0.7254 0.7486 0.7662 0.7779 0.7843 0.7874 0.7898 0.7945 0.8037 0.8187 0.8389 0.8620 0.8837 0.8922 - 0.1593 0.1880 0.2148 0.2424 0.2721 0.3043 0.3381 0.3723 0.4049 0.4343 0.4589 0.4781 0.4918 0.5011 0.5076 0.5137 0.5215 0.5330 0.5494 0.5710 0.5970 0.6258 0.6551 0.6827 0.7064 0.7250 0.7382 0.7468 0.7523 0.7571 0.7633 0.7729 0.7872 0.8064 0.8298 0.8557 0.8816 0.9038 0.9173 0.9053 - 0.1366 0.1750 0.2145 0.2547 0.2939 0.3300 0.3612 0.3865 0.4057 0.4197 0.4299 0.4384 0.4475 0.4592 0.4750 0.4956 0.5208 0.5495 0.5798 0.6098 0.6373 0.6608 0.6793 0.6928 0.7024 0.7097 0.7167 0.7255 0.7380 0.7551 0.7769 0.8028 0.8314 0.8611 0.8900 0.9162 0.9379 0.9521 0.9538 0.9193 - 0.1521 0.1978 0.2395 0.2757 0.3051 0.3276 0.3441 0.3566 0.3676 0.3796 0.3948 0.4144 0.4388 0.4673 0.4986 0.5305 0.5609 0.5880 0.6106 0.6283 0.6417 0.6520 0.6611 0.6711 0.6837 0.7004 0.7220 0.7482 0.7782 0.8108 0.8441 0.8766 0.9067 0.9337 0.9567 0.9755 0.9892 0.9955 0.9882 0.9335 - 0.1696 0.2069 0.2363 0.2591 0.2773 0.2933 0.3096 0.3286 0.3516 0.3790 0.4099 0.4429 0.4758 0.5065 0.5334 0.5554 0.5727 0.5861 0.5974 0.6086 0.6220 0.6391 0.6611 0.6881 0.7197 0.7545 0.7908 0.8271 0.8617 0.8936 0.9219 0.9465 0.9675 0.9854 1.0005 1.0130 1.0223 1.0261 1.0165 0.9477 - 0.1567 0.1841 0.2075 0.2304 0.2550 0.2827 0.3137 0.3474 0.3820 0.4157 0.4466 0.4733 0.4952 0.5126 0.5268 0.5398 0.5538 0.5708 0.5925 0.6196 0.6519 0.6884 0.7274 0.7669 0.8051 0.8405 0.8721 0.8997 0.9236 0.9443 0.9625 0.9788 0.9937 1.0072 1.0192 1.0297 1.0381 1.0431 1.0370 0.9613 - 0.1345 0.1659 0.1990 0.2350 0.2731 0.3116 0.3483 0.3813 0.4092 0.4318 0.4498 0.4650 0.4796 0.4960 0.5165 0.5423 0.5739 0.6106 0.6510 0.6929 0.7343 0.7732 0.8084 0.8392 0.8657 0.8887 0.9092 0.9283 0.9468 0.9652 0.9832 1.0006 1.0164 1.0298 1.0399 1.0466 1.0503 1.0527 1.0501 0.9741 - 0.1360 0.1792 0.2228 0.2653 0.3041 0.3372 0.3639 0.3848 0.4018 0.4177 0.4355 0.4576 0.4857 0.5200 0.5598 0.6032 0.6476 0.6905 0.7301 0.7649 0.7950 0.8210 0.8443 0.8663 0.8885 0.9118 0.9365 0.9624 0.9886 1.0141 1.0376 1.0580 1.0739 1.0842 1.0876 1.0837 1.0739 1.0637 1.0583 0.9857 - 0.1584 0.2055 0.2473 0.2826 0.3109 0.3334 0.3526 0.3718 0.3942 0.4222 0.4568 0.4974 0.5423 0.5887 0.6337 0.6749 0.7110 0.7418 0.7685 0.7929 0.8173 0.8436 0.8727 0.9051 0.9397 0.9754 1.0104 1.0433 1.0731 1.0992 1.1212 1.1388 1.1514 1.1576 1.1550 1.1407 1.1140 1.0825 1.0644 0.9960 - 0.1760 0.2167 0.2495 0.2762 0.2998 0.3236 0.3511 0.3842 0.4237 0.4684 0.5158 0.5630 0.6071 0.6462 0.6797 0.7086 0.7350 0.7616 0.7908 0.8242 0.8621 0.9035 0.9462 0.9878 1.0261 1.0595 1.0877 1.1110 1.1307 1.1478 1.1637 1.1788 1.1929 1.2040 1.2077 1.1965 1.1625 1.1099 1.0708 1.0049 - 0.1765 0.2105 0.2397 0.2684 0.3004 0.3377 0.3808 0.4285 0.4779 0.5259 0.5697 0.6078 0.6404 0.6693 0.6973 0.7276 0.7625 0.8027 0.8476 0.8946 0.9404 0.9819 1.0166 1.0436 1.0637 1.0786 1.0907 1.1021 1.1142 1.1276 1.1425 1.1592 1.1784 1.2000 1.2205 1.2287 1.2057 1.1423 1.0786 1.0125 - 0.1684 0.2030 0.2383 0.2782 0.3239 0.3743 0.4265 0.4770 0.5227 0.5621 0.5955 0.6252 0.6548 0.6876 0.7262 0.7710 0.8203 0.8703 0.9167 0.9557 0.9850 1.0050 1.0181 1.0279 1.0384 1.0523 1.0705 1.0916 1.1130 1.1315 1.1449 1.1536 1.1619 1.1768 1.2029 1.2318 1.2333 1.1739 1.0880 1.0187 - 0.1641 0.2057 0.2516 0.3032 0.3583 0.4133 0.4642 0.5084 0.5453 0.5768 0.6069 0.6396 0.6785 0.7245 0.7759 0.8285 0.8769 0.9162 0.9440 0.9612 0.9719 0.9824 0.9988 1.0254 1.0627 1.1080 1.1558 1.1999 1.2343 1.2539 1.2553 1.2386 1.2104 1.1866 1.1874 1.2181 1.2439 1.2001 1.0980 1.0236 - 0.1672 0.2174 0.2723 0.3307 0.3883 0.4409 0.4858 0.5228 0.5546 0.5859 0.6213 0.6640 0.7142 0.7686 0.8215 0.8666 0.8995 0.9196 0.9310 0.9417 0.9611 0.9965 1.0501 1.1186 1.1936 1.2652 1.3261 1.3728 1.4051 1.4218 1.4176 1.3845 1.3215 1.2464 1.1971 1.2047 1.2431 1.2190 1.1075 1.0273 - 0.1745 0.2311 0.2912 0.3516 0.4077 0.4560 0.4957 0.5291 0.5611 0.5969 0.6401 0.6913 0.7469 0.8007 0.8458 0.8772 0.8952 0.9053 0.9183 0.9457 0.9959 1.0700 1.1599 1.2507 1.3264 1.3772 1.4043 1.4198 1.4388 1.4674 1.4935 1.4893 1.4308 1.3260 1.2277 1.1997 1.2381 1.2308 1.1151 1.0299 - 0.1809 0.2410 0.3032 0.3636 0.4176 0.4628 0.4998 0.5327 0.5667 0.6070 0.6555 0.7107 0.7667 0.8163 0.8530 0.8749 0.8861 0.8972 0.9216 0.9706 1.0479 1.1456 1.2456 1.3246 1.3642 1.3607 1.3301 1.3038 1.3133 1.3708 1.4539 1.5109 1.4905 1.3858 1.2585 1.2010 1.2337 1.2370 1.1201 1.0314 - 0.1834 0.2446 0.3073 0.3674 0.4205 0.4647 0.5010 0.5340 0.5691 0.6110 0.6613 0.7174 0.7730 0.8204 0.8540 0.8727 0.8828 0.8959 0.9263 0.9842 1.0708 1.1745 1.2727 1.3396 1.3566 1.3240 1.2651 1.2200 1.2273 1.3011 1.4141 1.5035 1.5057 1.4067 1.2710 1.2025 1.2320 1.2389 1.1218 1.0319 - 0.7150 0.8791 1.0067 1.0885 1.1227 1.1186 1.0945 1.0707 1.0629 1.0774 1.1100 1.1483 1.1770 1.1841 1.1656 1.1270 1.0818 1.0456 1.0296 1.0358 1.0557 1.0736 1.0740 1.0495 1.0054 0.9581 0.9267 0.9219 0.9376 0.9528 0.9444 0.9064 0.8594 0.8382 0.8559 0.8766 0.8465 0.7930 0.8324 0.8417 - 0.7161 0.8789 1.0033 1.0811 1.1117 1.1059 1.0823 1.0609 1.0564 1.0740 1.1085 1.1469 1.1742 1.1791 1.1586 1.1192 1.0746 1.0401 1.0264 1.0345 1.0550 1.0723 1.0713 1.0455 1.0010 0.9545 0.9247 0.9215 0.9378 0.9523 0.9426 0.9038 0.8574 0.8378 0.8565 0.8766 0.8455 0.7928 0.8331 0.8416 - 0.7193 0.8768 0.9906 1.0563 1.0775 1.0680 1.0474 1.0340 1.0396 1.0657 1.1044 1.1420 1.1644 1.1628 1.1370 1.0958 1.0537 1.0251 1.0181 1.0311 1.0530 1.0679 1.0626 1.0331 0.9878 0.9441 0.9195 0.9208 0.9385 0.9505 0.9368 0.8960 0.8518 0.8368 0.8581 0.8763 0.8425 0.7921 0.8349 0.8416 - 0.7223 0.8661 0.9606 1.0081 1.0181 1.0078 0.9962 0.9979 1.0191 1.0562 1.0982 1.1312 1.1439 1.1318 1.0994 1.0581 1.0226 1.0045 1.0079 1.0271 1.0490 1.0586 1.0458 1.0112 0.9663 0.9287 0.9128 0.9208 0.9394 0.9466 0.9264 0.8832 0.8432 0.8357 0.8606 0.8750 0.8371 0.7912 0.8379 0.8415 - 0.7147 0.8338 0.9028 0.9319 0.9366 0.9347 0.9413 0.9643 1.0027 1.0477 1.0867 1.1083 1.1064 1.0827 1.0462 1.0102 0.9872 0.9842 0.9994 1.0230 1.0410 1.0410 1.0185 0.9794 0.9383 0.9111 0.9072 0.9223 0.9396 0.9389 0.9105 0.8660 0.8334 0.8358 0.8635 0.8716 0.8293 0.7907 0.8419 0.8414 - 0.6785 0.7665 0.8127 0.8342 0.8476 0.8668 0.8989 0.9433 0.9924 1.0351 1.0610 1.0645 1.0468 1.0157 0.9831 0.9609 0.9566 0.9703 0.9943 1.0162 1.0239 1.0107 0.9789 0.9397 0.9080 0.8959 0.9051 0.9249 0.9367 0.9249 0.8886 0.8462 0.8248 0.8380 0.8661 0.8651 0.8191 0.7911 0.8466 0.8415 - 0.6013 0.6658 0.7058 0.7391 0.7769 0.8242 0.8788 0.9332 0.9777 1.0040 1.0086 0.9936 0.9671 0.9400 0.9230 0.9225 0.9384 0.9639 0.9879 0.9994 0.9914 0.9652 0.9294 0.8978 0.8822 0.8874 0.9069 0.9255 0.9264 0.9023 0.8616 0.8270 0.8203 0.8430 0.8668 0.8544 0.8074 0.7935 0.8516 0.8418 - 0.4988 0.5621 0.6188 0.6791 0.7445 0.8106 0.8697 0.9136 0.9369 0.9391 0.9248 0.9026 0.8830 0.8745 0.8818 0.9032 0.9316 0.9570 0.9693 0.9632 0.9400 0.9078 0.8785 0.8634 0.8677 0.8870 0.9089 0.9181 0.9045 0.8708 0.8330 0.8129 0.8221 0.8495 0.8635 0.8389 0.7956 0.7986 0.8562 0.8425 - 0.4171 0.5002 0.5827 0.6643 0.7389 0.7990 0.8389 0.8568 0.8556 0.8423 0.8264 0.8169 0.8200 0.8376 0.8659 0.8972 0.9222 0.9330 0.9262 0.9043 0.8756 0.8508 0.8395 0.8458 0.8661 0.8896 0.9028 0.8961 0.8694 0.8343 0.8090 0.8080 0.8300 0.8545 0.8536 0.8195 0.7863 0.8069 0.8598 0.8438 - 0.3928 0.4933 0.5839 0.6597 0.7153 0.7482 0.7606 0.7585 0.7504 0.7450 0.7493 0.7662 0.7944 0.8283 0.8600 0.8817 0.8882 0.8789 0.8580 0.8339 0.8161 0.8118 0.8231 0.8456 0.8694 0.8833 0.8793 0.8572 0.8263 0.8017 0.7966 0.8136 0.8399 0.8527 0.8355 0.7987 0.7822 0.8183 0.8616 0.8458 - 0.4039 0.4954 0.5649 0.6120 0.6387 0.6499 0.6534 0.6572 0.6678 0.6885 0.7189 0.7549 0.7901 0.8177 0.8324 0.8326 0.8204 0.8018 0.7849 0.7771 0.7826 0.8008 0.8260 0.8490 0.8608 0.8559 0.8357 0.8088 0.7878 0.7837 0.7992 0.8254 0.8443 0.8394 0.8106 0.7810 0.7856 0.8314 0.8607 0.8488 - 0.3864 0.4485 0.4895 0.5159 0.5347 0.5524 0.5746 0.6040 0.6399 0.6792 0.7167 0.7468 0.7654 0.7710 0.7651 0.7526 0.7400 0.7338 0.7386 0.7550 0.7799 0.8064 0.8266 0.8338 0.8260 0.8063 0.7835 0.7681 0.7683 0.7855 0.8118 0.8328 0.8347 0.8140 0.7843 0.7722 0.7972 0.8439 0.8570 0.8530 - 0.3165 0.3610 0.3972 0.4322 0.4700 0.5118 0.5564 0.6006 0.6401 0.6710 0.6906 0.6983 0.6964 0.6891 0.6819 0.6804 0.6881 0.7060 0.7317 0.7600 0.7842 0.7984 0.7994 0.7881 0.7698 0.7527 0.7452 0.7522 0.7729 0.7994 0.8200 0.8240 0.8084 0.7826 0.7657 0.7762 0.8148 0.8527 0.8507 0.8585 - 0.2487 0.3026 0.3566 0.4119 0.4662 0.5161 0.5579 0.5889 0.6080 0.6165 0.6172 0.6147 0.6138 0.6188 0.6321 0.6541 0.6821 0.7118 0.7376 0.7547 0.7604 0.7550 0.7422 0.7282 0.7200 0.7227 0.7380 0.7625 0.7883 0.8059 0.8084 0.7948 0.7732 0.7579 0.7632 0.7930 0.8330 0.8549 0.8432 0.8654 - 0.2374 0.3047 0.3669 0.4214 0.4652 0.4968 0.5163 0.5263 0.5305 0.5336 0.5400 0.5527 0.5732 0.6004 0.6315 0.6623 0.6882 0.7056 0.7127 0.7103 0.7016 0.6919 0.6867 0.6904 0.7047 0.7276 0.7541 0.7767 0.7890 0.7874 0.7740 0.7565 0.7461 0.7528 0.7789 0.8158 0.8450 0.8496 0.8366 0.8739 - 0.2540 0.3123 0.3579 0.3911 0.4135 0.4281 0.4389 0.4503 0.4657 0.4871 0.5146 0.5466 0.5799 0.6106 0.6352 0.6511 0.6577 0.6567 0.6513 0.6461 0.6456 0.6531 0.6697 0.6935 0.7204 0.7448 0.7610 0.7659 0.7597 0.7467 0.7346 0.7317 0.7437 0.7705 0.8048 0.8337 0.8454 0.8389 0.8339 0.8839 - 0.2344 0.2724 0.3007 0.3236 0.3449 0.3677 0.3942 0.4249 0.4589 0.4939 0.5271 0.5555 0.5767 0.5897 0.5953 0.5955 0.5938 0.5942 0.5999 0.6130 0.6335 0.6595 0.6870 0.7115 0.7287 0.7360 0.7338 0.7251 0.7155 0.7115 0.7183 0.7376 0.7669 0.7990 0.8248 0.8369 0.8348 0.8284 0.8380 0.8954 - 0.1834 0.2179 0.2515 0.2871 0.3251 0.3646 0.4038 0.4401 0.4712 0.4954 0.5121 0.5219 0.5266 0.5291 0.5325 0.5398 0.5530 0.5727 0.5979 0.6260 0.6534 0.6765 0.6923 0.6995 0.6988 0.6933 0.6874 0.6860 0.6932 0.7107 0.7370 0.7676 0.7963 0.8169 0.8259 0.8248 0.8209 0.8256 0.8510 0.9081 - 0.1611 0.2082 0.2553 0.3012 0.3434 0.3795 0.4079 0.4283 0.4414 0.4495 0.4554 0.4619 0.4719 0.4872 0.5083 0.5343 0.5633 0.5923 0.6182 0.6383 0.6510 0.6564 0.6562 0.6534 0.6519 0.6554 0.6664 0.6858 0.7121 0.7418 0.7702 0.7927 0.8064 0.8111 0.8101 0.8095 0.8166 0.8372 0.8734 0.9216 - 0.1792 0.2290 0.2720 0.3072 0.3339 0.3528 0.3659 0.3760 0.3862 0.3992 0.4169 0.4399 0.4675 0.4978 0.5283 0.5560 0.5786 0.5945 0.6037 0.6073 0.6079 0.6086 0.6125 0.6223 0.6391 0.6626 0.6906 0.7200 0.7471 0.7686 0.7827 0.7894 0.7912 0.7922 0.7970 0.8101 0.8333 0.8659 0.9034 0.9357 - 0.1860 0.2220 0.2493 0.2703 0.2876 0.3040 0.3220 0.3435 0.3692 0.3985 0.4300 0.4613 0.4900 0.5140 0.5319 0.5435 0.5501 0.5536 0.5569 0.5629 0.5738 0.5908 0.6139 0.6415 0.6712 0.6998 0.7246 0.7433 0.7555 0.7622 0.7656 0.7691 0.7763 0.7898 0.8112 0.8399 0.8735 0.9078 0.9376 0.9500 - 0.1574 0.1846 0.2093 0.2347 0.2624 0.2930 0.3259 0.3596 0.3921 0.4215 0.4460 0.4647 0.4779 0.4865 0.4927 0.4989 0.5075 0.5207 0.5394 0.5636 0.5919 0.6222 0.6517 0.6780 0.6990 0.7140 0.7237 0.7298 0.7351 0.7423 0.7541 0.7722 0.7967 0.8269 0.8606 0.8951 0.9272 0.9539 0.9715 0.9640 - 0.1322 0.1674 0.2041 0.2424 0.2807 0.3169 0.3488 0.3750 0.3950 0.4093 0.4195 0.4276 0.4362 0.4476 0.4635 0.4847 0.5108 0.5405 0.5716 0.6017 0.6286 0.6506 0.6671 0.6787 0.6868 0.6941 0.7030 0.7159 0.7345 0.7592 0.7894 0.8235 0.8591 0.8942 0.9265 0.9547 0.9776 0.9939 1.0007 0.9773 - 0.1416 0.1858 0.2275 0.2648 0.2959 0.3200 0.3376 0.3503 0.3607 0.3714 0.3849 0.4030 0.4264 0.4544 0.4856 0.5179 0.5488 0.5761 0.5985 0.6157 0.6283 0.6381 0.6474 0.6587 0.6742 0.6951 0.7220 0.7542 0.7901 0.8276 0.8646 0.8992 0.9300 0.9565 0.9787 0.9970 1.0113 1.0211 1.0228 0.9896 - 0.1616 0.2007 0.2322 0.2565 0.2750 0.2899 0.3040 0.3201 0.3401 0.3649 0.3942 0.4265 0.4597 0.4914 0.5195 0.5426 0.5604 0.5740 0.5852 0.5965 0.6102 0.6286 0.6528 0.6830 0.7181 0.7566 0.7961 0.8346 0.8702 0.9019 0.9292 0.9524 0.9720 0.9889 1.0038 1.0169 1.0281 1.0363 1.0377 1.0008 - 0.1577 0.1857 0.2080 0.2280 0.2485 0.2717 0.2987 0.3295 0.3630 0.3971 0.4295 0.4584 0.4825 0.5015 0.5165 0.5293 0.5425 0.5586 0.5796 0.6066 0.6397 0.6778 0.7188 0.7603 0.8001 0.8364 0.8681 0.8952 0.9182 0.9383 0.9565 0.9735 0.9899 1.0053 1.0194 1.0314 1.0406 1.0464 1.0474 1.0106 - 0.1361 0.1632 0.1907 0.2212 0.2550 0.2912 0.3278 0.3627 0.3936 0.4194 0.4400 0.4563 0.4705 0.4852 0.5030 0.5260 0.5552 0.5906 0.6309 0.6738 0.7169 0.7577 0.7945 0.8264 0.8535 0.8768 0.8978 0.9180 0.9385 0.9598 0.9819 1.0038 1.0244 1.0419 1.0551 1.0628 1.0643 1.0608 1.0550 1.0190 - 0.1269 0.1640 0.2035 0.2443 0.2842 0.3205 0.3513 0.3757 0.3948 0.4105 0.4257 0.4436 0.4667 0.4965 0.5329 0.5746 0.6193 0.6641 0.7063 0.7440 0.7765 0.8042 0.8285 0.8513 0.8745 0.8995 0.9269 0.9565 0.9874 1.0182 1.0473 1.0732 1.0945 1.1098 1.1178 1.1169 1.1057 1.0853 1.0638 1.0262 - 0.1406 0.1860 0.2294 0.2686 0.3014 0.3273 0.3475 0.3647 0.3822 0.4036 0.4312 0.4660 0.5073 0.5528 0.5995 0.6442 0.6845 0.7191 0.7484 0.7741 0.7985 0.8244 0.8534 0.8864 0.9229 0.9614 1.0001 1.0369 1.0703 1.0996 1.1246 1.1455 1.1621 1.1742 1.1799 1.1757 1.1566 1.1195 1.0757 1.0321 - 0.1612 0.2054 0.2426 0.2725 0.2964 0.3168 0.3375 0.3620 0.3928 0.4307 0.4746 0.5220 0.5694 0.6136 0.6524 0.6853 0.7135 0.7395 0.7665 0.7972 0.8330 0.8738 0.9178 0.9623 1.0041 1.0409 1.0714 1.0958 1.1153 1.1317 1.1467 1.1616 1.1769 1.1925 1.2064 1.2128 1.2009 1.1577 1.0910 1.0369 - 0.1717 0.2089 0.2386 0.2637 0.2879 0.3149 0.3477 0.3873 0.4326 0.4810 0.5291 0.5736 0.6124 0.6453 0.6739 0.7014 0.7313 0.7662 0.8074 0.8536 0.9019 0.9484 0.9892 1.0217 1.0454 1.0618 1.0735 1.0836 1.0943 1.1066 1.1203 1.1352 1.1515 1.1706 1.1936 1.2171 1.2259 1.1922 1.1088 1.0408 - 0.1699 0.2022 0.2306 0.2599 0.2935 0.3334 0.3793 0.4288 0.4786 0.5250 0.5656 0.6001 0.6300 0.6587 0.6901 0.7272 0.7711 0.8203 0.8710 0.9183 0.9577 0.9865 1.0049 1.0161 1.0249 1.0361 1.0529 1.0756 1.1017 1.1267 1.1461 1.1574 1.1614 1.1641 1.1751 1.2012 1.2302 1.2178 1.1271 1.0438 - 0.1635 0.1965 0.2301 0.2687 0.3135 0.3636 0.4157 0.4659 0.5110 0.5493 0.5817 0.6112 0.6421 0.6783 0.7217 0.7717 0.8244 0.8743 0.9157 0.9453 0.9630 0.9731 0.9824 0.9986 1.0272 1.0693 1.1215 1.1767 1.2265 1.2634 1.2819 1.2789 1.2552 1.2186 1.1884 1.1885 1.2220 1.2331 1.1441 1.0462 - 0.1592 0.1966 0.2379 0.2854 0.3379 0.3921 0.4437 0.4892 0.5274 0.5597 0.5898 0.6224 0.6615 0.7084 0.7612 0.8149 0.8630 0.8998 0.9231 0.9356 0.9448 0.9610 0.9930 1.0455 1.1161 1.1963 1.2743 1.3403 1.3890 1.4202 1.4342 1.4267 1.3894 1.3205 1.2402 1.1935 1.2114 1.2401 1.1582 1.0479 - 0.1586 0.2010 0.2487 0.3020 0.3580 0.4121 0.4604 0.5009 0.5347 0.5654 0.5979 0.6368 0.6840 0.7376 0.7923 0.8411 0.8778 0.9003 0.9121 0.9226 0.9439 0.9865 1.0547 1.1429 1.2370 1.3194 1.3767 1.4069 1.4208 1.4354 1.4602 1.4847 1.4790 1.4160 1.3061 1.2129 1.2046 1.2419 1.1687 1.0491 - 0.1596 0.2056 0.2571 0.3133 0.3701 0.4230 0.4685 0.5060 0.5381 0.5695 0.6053 0.6491 0.7008 0.7564 0.8090 0.8513 0.8791 0.8939 0.9037 0.9217 0.9606 1.0279 1.1199 1.2210 1.3080 1.3591 1.3655 1.3388 1.3093 1.3120 1.3634 1.4435 1.4975 1.4695 1.3558 1.2332 1.2019 1.2418 1.1750 1.0499 - 0.1602 0.2075 0.2602 0.3172 0.3741 0.4263 0.4708 0.5075 0.5392 0.5711 0.6083 0.6538 0.7068 0.7626 0.8139 0.8535 0.8782 0.8910 0.9016 0.9239 0.9705 1.0467 1.1454 1.2470 1.3248 1.3563 1.3359 1.2819 1.2333 1.2326 1.2989 1.4074 1.4921 1.4843 1.3736 1.2416 1.2014 1.2416 1.1772 1.0501 - 0.6947 0.8236 0.9016 0.9351 0.9381 0.9297 0.9279 0.9436 0.9775 1.0210 1.0606 1.0833 1.0817 1.0574 1.0201 0.9843 0.9631 0.9630 0.9809 1.0050 1.0202 1.0151 0.9875 0.9468 0.9098 0.8918 0.8977 0.9172 0.9296 0.9167 0.8775 0.8338 0.8163 0.8363 0.8645 0.8525 0.8005 0.7941 0.8558 0.8440 - 0.6938 0.8193 0.8938 0.9249 0.9273 0.9203 0.9211 0.9396 0.9755 1.0198 1.0586 1.0795 1.0761 1.0505 1.0133 0.9786 0.9594 0.9612 0.9801 1.0042 1.0184 1.0118 0.9833 0.9426 0.9067 0.8904 0.8976 0.9174 0.9291 0.9149 0.8751 0.8320 0.8159 0.8367 0.8645 0.8514 0.7996 0.7946 0.8560 0.8443 - 0.6892 0.8041 0.8687 0.8937 0.8958 0.8938 0.9028 0.9295 0.9708 1.0161 1.0518 1.0672 1.0583 1.0297 0.9930 0.9625 0.9491 0.9563 0.9781 1.0016 1.0124 1.0016 0.9704 0.9303 0.8979 0.8865 0.8975 0.9179 0.9270 0.9093 0.8680 0.8268 0.8147 0.8379 0.8641 0.8480 0.7970 0.7962 0.8567 0.8452 - 0.6746 0.7721 0.8227 0.8419 0.8476 0.8565 0.8794 0.9179 0.9651 1.0090 1.0375 1.0432 1.0262 0.9946 0.9612 0.9388 0.9355 0.9507 0.9755 0.9963 1.0007 0.9832 0.9487 0.9107 0.8850 0.8817 0.8978 0.9182 0.9225 0.8993 0.8564 0.8193 0.8137 0.8400 0.8629 0.8419 0.7929 0.7990 0.8575 0.8467 - 0.6402 0.7166 0.7553 0.7749 0.7921 0.8190 0.8595 0.9092 0.9581 0.9946 1.0103 1.0031 0.9785 0.9472 0.9222 0.9132 0.9229 0.9462 0.9715 0.9859 0.9806 0.9551 0.9187 0.8861 0.8708 0.8777 0.8989 0.9168 0.9137 0.8840 0.8409 0.8109 0.8142 0.8430 0.8600 0.8328 0.7879 0.8033 0.8582 0.8488 - 0.5785 0.6384 0.6751 0.7068 0.7448 0.7932 0.8486 0.9021 0.9434 0.9647 0.9636 0.9445 0.9174 0.8940 0.8843 0.8924 0.9150 0.9426 0.9629 0.9661 0.9489 0.9170 0.8830 0.8608 0.8592 0.8765 0.8998 0.9114 0.8985 0.8630 0.8232 0.8040 0.8171 0.8463 0.8544 0.8207 0.7828 0.8091 0.8584 0.8518 - 0.4960 0.5536 0.6037 0.6580 0.7192 0.7833 0.8418 0.8858 0.9089 0.9102 0.8948 0.8719 0.8529 0.8466 0.8569 0.8812 0.9109 0.9347 0.9430 0.9317 0.9046 0.8721 0.8475 0.8408 0.8537 0.8778 0.8975 0.8982 0.8748 0.8371 0.8061 0.8011 0.8231 0.8486 0.8448 0.8062 0.7791 0.8165 0.8577 0.8556 - 0.4191 0.4915 0.5646 0.6404 0.7137 0.7763 0.8206 0.8428 0.8441 0.8310 0.8131 0.8006 0.8011 0.8170 0.8449 0.8768 0.9022 0.9126 0.9045 0.8812 0.8519 0.8285 0.8207 0.8314 0.8547 0.8779 0.8869 0.8739 0.8429 0.8097 0.7934 0.8039 0.8309 0.8474 0.8303 0.7907 0.7784 0.8253 0.8555 0.8604 - 0.3797 0.4721 0.5603 0.6398 0.7031 0.7449 0.7643 0.7651 0.7553 0.7445 0.7415 0.7515 0.7751 0.8075 0.8406 0.8654 0.8750 0.8675 0.8468 0.8217 0.8025 0.7975 0.8093 0.8327 0.8569 0.8695 0.8627 0.8380 0.8071 0.7868 0.7891 0.8121 0.8371 0.8396 0.8111 0.7767 0.7822 0.8347 0.8518 0.8663 - 0.3822 0.4787 0.5586 0.6182 0.6552 0.6718 0.6743 0.6713 0.6715 0.6812 0.7028 0.7345 0.7702 0.8023 0.8234 0.8294 0.8205 0.8019 0.7820 0.7697 0.7711 0.7869 0.8118 0.8361 0.8492 0.8446 0.8237 0.7961 0.7760 0.7751 0.7946 0.8220 0.8365 0.8231 0.7893 0.7678 0.7914 0.8432 0.8464 0.8734 - 0.3879 0.4645 0.5175 0.5502 0.5674 0.5767 0.5859 0.6012 0.6258 0.6590 0.6966 0.7323 0.7597 0.7743 0.7747 0.7641 0.7485 0.7357 0.7327 0.7427 0.7643 0.7913 0.8147 0.8261 0.8210 0.8019 0.7776 0.7602 0.7597 0.7778 0.8056 0.8261 0.8242 0.7987 0.7693 0.7671 0.8053 0.8491 0.8399 0.8817 - 0.3520 0.4019 0.4351 0.4596 0.4823 0.5085 0.5410 0.5794 0.6203 0.6587 0.6895 0.7087 0.7151 0.7107 0.7005 0.6908 0.6881 0.6962 0.7155 0.7424 0.7700 0.7906 0.7982 0.7910 0.7731 0.7528 0.7404 0.7433 0.7625 0.7900 0.8123 0.8165 0.7990 0.7715 0.7575 0.7765 0.8212 0.8504 0.8333 0.8913 - 0.2812 0.3236 0.3622 0.4027 0.4468 0.4936 0.5400 0.5816 0.6143 0.6356 0.6452 0.6451 0.6398 0.6348 0.6354 0.6453 0.6650 0.6921 0.7213 0.7462 0.7611 0.7630 0.7533 0.7373 0.7229 0.7180 0.7272 0.7492 0.7764 0.7977 0.8032 0.7902 0.7670 0.7511 0.7593 0.7943 0.8347 0.8462 0.8283 0.9020 - 0.2307 0.2868 0.3433 0.3997 0.4527 0.4982 0.5330 0.5557 0.5670 0.5700 0.5690 0.5693 0.5752 0.5894 0.6121 0.6410 0.6715 0.6983 0.7164 0.7233 0.7194 0.7084 0.6967 0.6908 0.6957 0.7127 0.7381 0.7644 0.7825 0.7859 0.7742 0.7549 0.7415 0.7470 0.7752 0.8146 0.8410 0.8371 0.8270 0.9138 - 0.2313 0.2967 0.3554 0.4047 0.4420 0.4669 0.4809 0.4876 0.4918 0.4982 0.5103 0.5301 0.5571 0.5886 0.6204 0.6479 0.6671 0.6761 0.6754 0.6684 0.6602 0.6564 0.6614 0.6770 0.7010 0.7283 0.7518 0.7647 0.7642 0.7522 0.7366 0.7280 0.7358 0.7621 0.7988 0.8291 0.8374 0.8264 0.8317 0.9264 - 0.2448 0.2981 0.3383 0.3668 0.3857 0.3988 0.4106 0.4250 0.4447 0.4708 0.5020 0.5356 0.5677 0.5945 0.6130 0.6223 0.6235 0.6197 0.6154 0.6154 0.6232 0.6400 0.6644 0.6921 0.7174 0.7349 0.7411 0.7362 0.7247 0.7141 0.7126 0.7258 0.7535 0.7881 0.8176 0.8305 0.8257 0.8192 0.8441 0.9396 - 0.2213 0.2561 0.2822 0.3043 0.3264 0.3511 0.3800 0.4129 0.4480 0.4826 0.5134 0.5377 0.5540 0.5624 0.5646 0.5639 0.5644 0.5696 0.5820 0.6021 0.6281 0.6563 0.6820 0.7008 0.7098 0.7092 0.7020 0.6937 0.6908 0.6987 0.7191 0.7492 0.7819 0.8080 0.8204 0.8190 0.8132 0.8218 0.8647 0.9530 - 0.1741 0.2075 0.2407 0.2764 0.3148 0.3544 0.3930 0.4277 0.4562 0.4772 0.4905 0.4976 0.5010 0.5040 0.5099 0.5213 0.5395 0.5639 0.5921 0.6206 0.6456 0.6636 0.6730 0.6741 0.6699 0.6649 0.6641 0.6720 0.6902 0.7173 0.7487 0.7780 0.7988 0.8078 0.8071 0.8042 0.8109 0.8387 0.8925 0.9662 - 0.1550 0.2008 0.2467 0.2915 0.3325 0.3669 0.3934 0.4117 0.4231 0.4301 0.4359 0.4435 0.4556 0.4737 0.4978 0.5261 0.5560 0.5840 0.6071 0.6229 0.6310 0.6326 0.6306 0.6292 0.6324 0.6432 0.6628 0.6897 0.7203 0.7496 0.7727 0.7866 0.7915 0.7910 0.7921 0.8025 0.8281 0.8705 0.9248 0.9789 - 0.1719 0.2205 0.2625 0.2968 0.3225 0.3404 0.3526 0.3621 0.3723 0.3860 0.4047 0.4290 0.4578 0.4886 0.5186 0.5448 0.5648 0.5777 0.5840 0.5859 0.5865 0.5894 0.5977 0.6133 0.6362 0.6646 0.6951 0.7235 0.7463 0.7612 0.7684 0.7707 0.7728 0.7801 0.7973 0.8266 0.8666 0.9126 0.9577 0.9908 - 0.1802 0.2160 0.2429 0.2632 0.2795 0.2949 0.3120 0.3329 0.3584 0.3877 0.4192 0.4503 0.4783 0.5011 0.5175 0.5275 0.5328 0.5360 0.5403 0.5485 0.5629 0.5840 0.6109 0.6411 0.6714 0.6982 0.7191 0.7329 0.7404 0.7443 0.7487 0.7575 0.7743 0.8005 0.8353 0.8759 0.9177 0.9562 0.9871 1.0015 - 0.1561 0.1821 0.2050 0.2282 0.2538 0.2827 0.3144 0.3476 0.3800 0.4095 0.4340 0.4525 0.4652 0.4734 0.4792 0.4855 0.4950 0.5097 0.5305 0.5568 0.5869 0.6180 0.6469 0.6711 0.6891 0.7008 0.7080 0.7136 0.7210 0.7337 0.7537 0.7819 0.8169 0.8562 0.8964 0.9340 0.9665 0.9922 1.0101 1.0109 - 0.1294 0.1613 0.1950 0.2311 0.2682 0.3043 0.3368 0.3641 0.3850 0.4000 0.4102 0.4181 0.4261 0.4371 0.4528 0.4742 0.5009 0.5314 0.5631 0.5932 0.6194 0.6399 0.6546 0.6646 0.6722 0.6805 0.6925 0.7107 0.7363 0.7688 0.8065 0.8466 0.8861 0.9224 0.9538 0.9797 1.0002 1.0157 1.0256 1.0189 - 0.1323 0.1744 0.2154 0.2535 0.2863 0.3123 0.3314 0.3449 0.3549 0.3645 0.3764 0.3927 0.4146 0.4418 0.4729 0.5054 0.5368 0.5645 0.5869 0.6037 0.6157 0.6252 0.6350 0.6479 0.6663 0.6916 0.7236 0.7610 0.8015 0.8422 0.8806 0.9147 0.9436 0.9675 0.9871 1.0036 1.0175 1.0286 1.0354 1.0255 - 0.1522 0.1928 0.2266 0.2532 0.2730 0.2878 0.3004 0.3138 0.3307 0.3525 0.3795 0.4107 0.4439 0.4764 0.5058 0.5302 0.5490 0.5630 0.5742 0.5852 0.5992 0.6184 0.6444 0.6771 0.7154 0.7568 0.7987 0.8384 0.8740 0.9045 0.9301 0.9515 0.9699 0.9866 1.0023 1.0169 1.0296 1.0388 1.0426 1.0308 - 0.1568 0.1867 0.2096 0.2282 0.2455 0.2644 0.2869 0.3139 0.3450 0.3785 0.4120 0.4430 0.4696 0.4907 0.5070 0.5200 0.5324 0.5472 0.5669 0.5933 0.6266 0.6657 0.7083 0.7517 0.7929 0.8299 0.8616 0.8881 0.9105 0.9306 0.9497 0.9690 0.9887 1.0083 1.0266 1.0420 1.0525 1.0558 1.0511 1.0351 - 0.1400 0.1646 0.1875 0.2123 0.2407 0.2728 0.3076 0.3429 0.3762 0.4054 0.4293 0.4480 0.4629 0.4765 0.4918 0.5116 0.5377 0.5708 0.6101 0.6534 0.6980 0.7408 0.7795 0.8129 0.8409 0.8647 0.8862 0.9077 0.9306 0.9558 0.9829 1.0105 1.0370 1.0604 1.0790 1.0908 1.0938 1.0850 1.0641 1.0385 - 0.1240 0.1547 0.1880 0.2247 0.2632 0.3009 0.3351 0.3639 0.3866 0.4043 0.4190 0.4340 0.4524 0.4768 0.5085 0.5470 0.5906 0.6363 0.6810 0.7218 0.7573 0.7873 0.8129 0.8364 0.8602 0.8863 0.9159 0.9490 0.9844 1.0203 1.0545 1.0852 1.1111 1.1312 1.1450 1.1511 1.1462 1.1244 1.0826 1.0412 - 0.1263 0.1670 0.2089 0.2498 0.2868 0.3176 0.3416 0.3601 0.3758 0.3923 0.4131 0.4407 0.4760 0.5180 0.5642 0.6111 0.6553 0.6944 0.7275 0.7554 0.7806 0.8058 0.8339 0.8665 0.9038 0.9445 0.9863 1.0267 1.0634 1.0951 1.1215 1.1431 1.1609 1.1757 1.1877 1.1951 1.1921 1.1664 1.1059 1.0434 - 0.1430 0.1880 0.2290 0.2641 0.2921 0.3138 0.3318 0.3500 0.3722 0.4013 0.4381 0.4816 0.5290 0.5766 0.6208 0.6593 0.6915 0.7191 0.7451 0.7729 0.8055 0.8440 0.8877 0.9340 0.9791 1.0198 1.0536 1.0799 1.0996 1.1149 1.1279 1.1406 1.1542 1.1695 1.1868 1.2047 1.2162 1.2014 1.1314 1.0454 - 0.1593 0.2010 0.2352 0.2623 0.2843 0.3048 0.3279 0.3569 0.3935 0.4369 0.4847 0.5331 0.5783 0.6176 0.6507 0.6791 0.7061 0.7359 0.7713 0.8137 0.8614 0.9110 0.9575 0.9968 1.0263 1.0462 1.0589 1.0681 1.0775 1.0890 1.1029 1.1180 1.1330 1.1479 1.1651 1.1885 1.2162 1.2234 1.1565 1.0471 - 0.1665 0.2022 0.2304 0.2546 0.2788 0.3068 0.3416 0.3835 0.4309 0.4802 0.5275 0.5695 0.6051 0.6352 0.6632 0.6932 0.7291 0.7724 0.8219 0.8736 0.9218 0.9612 0.9889 1.0055 1.0150 1.0234 1.0365 1.0576 1.0860 1.1176 1.1465 1.1673 1.1767 1.1754 1.1702 1.1751 1.2026 1.2317 1.1785 1.0486 - 0.1655 0.1971 0.2242 0.2516 0.2834 0.3219 0.3671 0.4167 0.4666 0.5131 0.5533 0.5870 0.6164 0.6456 0.6792 0.7202 0.7687 0.8217 0.8731 0.9167 0.9477 0.9656 0.9748 0.9834 1.0005 1.0326 1.0808 1.1400 1.2010 1.2540 1.2913 1.3086 1.3033 1.2743 1.2283 1.1885 1.1904 1.2303 1.1961 1.0499 - 0.1614 0.1922 0.2221 0.2557 0.2958 0.3425 0.3933 0.4442 0.4912 0.5315 0.5652 0.5950 0.6252 0.6606 0.7041 0.7550 0.8093 0.8601 0.9006 0.9269 0.9403 0.9479 0.9612 0.9913 1.0448 1.1197 1.2060 1.2888 1.3553 1.4004 1.4267 1.4387 1.4330 1.3964 1.3205 1.2301 1.1882 1.2243 1.2089 1.0510 - 0.1578 0.1900 0.2238 0.2633 0.3095 0.3606 0.4129 0.4620 0.5047 0.5402 0.5709 0.6012 0.6359 0.6786 0.7294 0.7844 0.8365 0.8784 0.9055 0.9190 0.9271 0.9425 0.9785 1.0426 1.1320 1.2320 1.3217 1.3827 1.4097 1.4147 1.4209 1.4443 1.4751 1.4748 1.4051 1.2815 1.1951 1.2182 1.2174 1.0518 - 0.1558 0.1897 0.2266 0.2698 0.3193 0.3722 0.4242 0.4712 0.5109 0.5441 0.5742 0.6064 0.6452 0.6926 0.7467 0.8015 0.8492 0.8832 0.9019 0.9111 0.9228 0.9520 1.0100 1.0980 1.2029 1.3004 1.3634 1.3762 1.3464 1.3062 1.2984 1.3481 1.4356 1.4945 1.4553 1.3212 1.2042 1.2141 1.2220 1.0523 - 0.1553 0.1899 0.2279 0.2723 0.3228 0.3761 0.4278 0.4740 0.5127 0.5452 0.5754 0.6085 0.6488 0.6978 0.7526 0.8069 0.8525 0.8836 0.8999 0.9085 0.9230 0.9584 1.0248 1.1201 1.2274 1.3184 1.3646 1.3527 1.2963 1.2368 1.2249 1.2890 1.4044 1.4926 1.4705 1.3357 1.2082 1.2127 1.2235 1.0525 - 0.6356 0.7169 0.7557 0.7705 0.7801 0.7993 0.8345 0.8824 0.9324 0.9713 0.9886 0.9813 0.9548 0.9213 0.8950 0.8867 0.8991 0.9255 0.9526 0.9660 0.9569 0.9268 0.8879 0.8572 0.8484 0.8637 0.8904 0.9071 0.8963 0.8576 0.8122 0.7905 0.8073 0.8416 0.8478 0.8064 0.7720 0.8173 0.8558 0.8817 - 0.6307 0.7092 0.7466 0.7618 0.7733 0.7950 0.8325 0.8816 0.9314 0.9688 0.9842 0.9753 0.9481 0.9152 0.8905 0.8842 0.8982 0.9253 0.9519 0.9639 0.9534 0.9225 0.8838 0.8544 0.8474 0.8638 0.8906 0.9064 0.8944 0.8552 0.8104 0.7901 0.8079 0.8419 0.8468 0.8050 0.7718 0.8181 0.8555 0.8822 - 0.6146 0.6854 0.7196 0.7368 0.7545 0.7839 0.8277 0.8796 0.9279 0.9605 0.9701 0.9566 0.9281 0.8975 0.8780 0.8777 0.8962 0.9247 0.9494 0.9573 0.9426 0.9097 0.8723 0.8469 0.8446 0.8642 0.8910 0.9039 0.8884 0.8479 0.8054 0.7893 0.8099 0.8426 0.8436 0.8006 0.7712 0.8203 0.8546 0.8838 - 0.5835 0.6443 0.6766 0.7001 0.7292 0.7707 0.8227 0.8764 0.9199 0.9437 0.9440 0.9246 0.8958 0.8707 0.8604 0.8695 0.8941 0.9233 0.9436 0.9444 0.9236 0.8887 0.8545 0.8363 0.8415 0.8652 0.8908 0.8984 0.8776 0.8360 0.7980 0.7891 0.8135 0.8432 0.8380 0.7935 0.7709 0.8240 0.8529 0.8865 - 0.5346 0.5880 0.6244 0.6607 0.7061 0.7610 0.8191 0.8698 0.9031 0.9138 0.9032 0.8794 0.8543 0.8396 0.8425 0.8626 0.8924 0.9194 0.9317 0.9229 0.8957 0.8608 0.8335 0.8256 0.8398 0.8667 0.8883 0.8881 0.8610 0.8200 0.7898 0.7906 0.8188 0.8431 0.8294 0.7845 0.7714 0.8288 0.8503 0.8903 - 0.4718 0.5264 0.5756 0.6306 0.6928 0.7569 0.8133 0.8530 0.8704 0.8663 0.8477 0.8253 0.8106 0.8114 0.8294 0.8589 0.8894 0.9090 0.9096 0.8907 0.8595 0.8294 0.8133 0.8182 0.8407 0.8674 0.8812 0.8708 0.8385 0.8016 0.7831 0.7949 0.8250 0.8407 0.8174 0.7746 0.7738 0.8345 0.8467 0.8952 - 0.4099 0.4769 0.5454 0.6181 0.6897 0.7514 0.7950 0.8161 0.8161 0.8017 0.7834 0.7719 0.7745 0.7933 0.8236 0.8560 0.8796 0.8862 0.8738 0.8477 0.8189 0.7999 0.7992 0.8167 0.8434 0.8643 0.8662 0.8454 0.8114 0.7838 0.7801 0.8023 0.8304 0.8343 0.8023 0.7655 0.7791 0.8404 0.8421 0.9013 - 0.3703 0.4553 0.5393 0.6180 0.6835 0.7287 0.7510 0.7533 0.7430 0.7302 0.7246 0.7324 0.7548 0.7870 0.8205 0.8455 0.8547 0.8461 0.8245 0.7992 0.7815 0.7796 0.7947 0.8203 0.8439 0.8528 0.8408 0.8127 0.7834 0.7705 0.7827 0.8113 0.8321 0.8222 0.7849 0.7593 0.7878 0.8454 0.8365 0.9085 - 0.3641 0.4588 0.5421 0.6081 0.6524 0.6743 0.6785 0.6733 0.6683 0.6715 0.6875 0.7155 0.7503 0.7838 0.8077 0.8162 0.8089 0.7903 0.7695 0.7560 0.7568 0.7730 0.7986 0.8231 0.8350 0.8282 0.8052 0.7775 0.7607 0.7658 0.7907 0.8186 0.8265 0.8038 0.7677 0.7584 0.7997 0.8485 0.8305 0.9168 - 0.3743 0.4594 0.5229 0.5641 0.5855 0.5933 0.5960 0.6019 0.6169 0.6428 0.6771 0.7138 0.7455 0.7657 0.7712 0.7631 0.7470 0.7313 0.7241 0.7305 0.7502 0.7771 0.8018 0.8146 0.8101 0.7905 0.7654 0.7483 0.7498 0.7710 0.8004 0.8188 0.8111 0.7809 0.7544 0.7646 0.8135 0.8482 0.8250 0.9261 - 0.3645 0.4250 0.4638 0.4872 0.5024 0.5170 0.5370 0.5654 0.6011 0.6401 0.6761 0.7034 0.7177 0.7188 0.7097 0.6969 0.6880 0.6889 0.7026 0.7268 0.7552 0.7790 0.7906 0.7863 0.7689 0.7471 0.7325 0.7340 0.7533 0.7820 0.8047 0.8071 0.7864 0.7581 0.7494 0.7780 0.8264 0.8438 0.8214 0.9363 - 0.3147 0.3560 0.3863 0.4137 0.4439 0.4795 0.5202 0.5629 0.6024 0.6340 0.6539 0.6613 0.6585 0.6505 0.6436 0.6438 0.6546 0.6760 0.7042 0.7324 0.7533 0.7615 0.7558 0.7401 0.7227 0.7131 0.7180 0.7380 0.7658 0.7890 0.7957 0.7821 0.7578 0.7427 0.7558 0.7963 0.8350 0.8354 0.8211 0.9472 - 0.2504 0.2937 0.3366 0.3828 0.4317 0.4803 0.5243 0.5593 0.5827 0.5942 0.5960 0.5925 0.5894 0.5919 0.6034 0.6246 0.6527 0.6826 0.7079 0.7233 0.7263 0.7183 0.7047 0.6930 0.6907 0.7017 0.7246 0.7521 0.7738 0.7807 0.7703 0.7500 0.7352 0.7413 0.7728 0.8142 0.8362 0.8248 0.8261 0.9585 - 0.2179 0.2760 0.3340 0.3897 0.4389 0.4780 0.5047 0.5195 0.5249 0.5255 0.5267 0.5330 0.5475 0.5706 0.6001 0.6315 0.6592 0.6785 0.6868 0.6844 0.6752 0.6653 0.6612 0.6678 0.6861 0.7124 0.7393 0.7581 0.7628 0.7530 0.7359 0.7238 0.7290 0.7556 0.7946 0.8251 0.8292 0.8155 0.8376 0.9699 - 0.2266 0.2893 0.3435 0.3868 0.4175 0.4364 0.4464 0.4521 0.4585 0.4698 0.4885 0.5146 0.5461 0.5787 0.6078 0.6290 0.6402 0.6416 0.6363 0.6293 0.6264 0.6321 0.6482 0.6729 0.7010 0.7254 0.7396 0.7407 0.7305 0.7166 0.7092 0.7171 0.7429 0.7793 0.8114 0.8243 0.8167 0.8123 0.8565 0.9812 - 0.2355 0.2838 0.3190 0.3433 0.3597 0.3727 0.3864 0.4045 0.4287 0.4587 0.4920 0.5252 0.5540 0.5754 0.5876 0.5912 0.5891 0.5858 0.5859 0.5934 0.6099 0.6343 0.6625 0.6889 0.7078 0.7158 0.7127 0.7029 0.6936 0.6930 0.7065 0.7340 0.7688 0.7991 0.8145 0.8126 0.8057 0.8200 0.8821 0.9920 - 0.2090 0.2408 0.2653 0.2872 0.3104 0.3372 0.3684 0.4029 0.4383 0.4713 0.4989 0.5187 0.5303 0.5348 0.5353 0.5357 0.5401 0.5513 0.5703 0.5960 0.6247 0.6517 0.6724 0.6835 0.6849 0.6792 0.6720 0.6698 0.6780 0.6987 0.7290 0.7621 0.7889 0.8026 0.8029 0.7985 0.8056 0.8415 0.9125 1.0019 - 0.1657 0.1981 0.2312 0.2671 0.3058 0.3453 0.3829 0.4156 0.4414 0.4592 0.4695 0.4746 0.4775 0.4820 0.4911 0.5070 0.5297 0.5574 0.5869 0.6138 0.6345 0.6466 0.6501 0.6473 0.6429 0.6421 0.6497 0.6678 0.6951 0.7272 0.7572 0.7789 0.7888 0.7891 0.7876 0.7956 0.8236 0.8757 0.9445 1.0108 - 0.1495 0.1940 0.2390 0.2827 0.3223 0.3552 0.3798 0.3963 0.4061 0.4123 0.4183 0.4273 0.4417 0.4625 0.4890 0.5188 0.5486 0.5747 0.5941 0.6056 0.6097 0.6090 0.6075 0.6098 0.6194 0.6380 0.6647 0.6959 0.7264 0.7509 0.7660 0.7717 0.7720 0.7744 0.7869 0.8155 0.8608 0.9174 0.9744 1.0185 - 0.1653 0.2126 0.2538 0.2873 0.3121 0.3291 0.3405 0.3496 0.3598 0.3740 0.3938 0.4192 0.4488 0.4799 0.5091 0.5334 0.5508 0.5609 0.5649 0.5659 0.5677 0.5738 0.5871 0.6083 0.6362 0.6674 0.6975 0.7223 0.7390 0.7475 0.7506 0.7534 0.7621 0.7818 0.8149 0.8593 0.9096 0.9583 0.9988 1.0248 - 0.1748 0.2105 0.2372 0.2570 0.2724 0.2867 0.3029 0.3232 0.3483 0.3775 0.4090 0.4398 0.4672 0.4890 0.5039 0.5126 0.5170 0.5202 0.5257 0.5365 0.5542 0.5789 0.6087 0.6402 0.6695 0.6933 0.7097 0.7190 0.7237 0.7283 0.7376 0.7557 0.7846 0.8234 0.8685 0.9146 0.9565 0.9906 1.0160 1.0298 - 0.1551 0.1803 0.2016 0.2228 0.2462 0.2732 0.3037 0.3362 0.3686 0.3981 0.4228 0.4414 0.4538 0.4615 0.4670 0.4734 0.4836 0.4996 0.5222 0.5504 0.5817 0.6129 0.6408 0.6626 0.6776 0.6868 0.6928 0.6997 0.7116 0.7317 0.7612 0.7990 0.8421 0.8863 0.9273 0.9621 0.9897 1.0108 1.0265 1.0337 - 0.1281 0.1569 0.1875 0.2210 0.2566 0.2922 0.3252 0.3536 0.3757 0.3915 0.4021 0.4097 0.4172 0.4274 0.4427 0.4641 0.4912 0.5222 0.5543 0.5844 0.6098 0.6291 0.6423 0.6512 0.6589 0.6691 0.6851 0.7092 0.7417 0.7811 0.8243 0.8674 0.9071 0.9409 0.9682 0.9898 1.0071 1.0216 1.0330 1.0366 - 0.1245 0.1638 0.2035 0.2419 0.2761 0.3042 0.3253 0.3400 0.3503 0.3590 0.3692 0.3836 0.4037 0.4297 0.4603 0.4930 0.5249 0.5531 0.5758 0.5924 0.6041 0.6134 0.6237 0.6382 0.6595 0.6888 0.7254 0.7672 0.8108 0.8529 0.8907 0.9225 0.9483 0.9692 0.9870 1.0033 1.0185 1.0314 1.0396 1.0389 - 0.1419 0.1833 0.2193 0.2486 0.2707 0.2865 0.2985 0.3098 0.3235 0.3420 0.3662 0.3956 0.4283 0.4615 0.4922 0.5182 0.5383 0.5530 0.5642 0.5750 0.5887 0.6084 0.6355 0.6703 0.7111 0.7549 0.7985 0.8388 0.8737 0.9027 0.9265 0.9468 0.9655 0.9843 1.0035 1.0225 1.0391 1.0498 1.0505 1.0408 - 0.1531 0.1859 0.2108 0.2298 0.2454 0.2607 0.2786 0.3012 0.3289 0.3606 0.3942 0.4269 0.4560 0.4798 0.4979 0.5117 0.5236 0.5369 0.5550 0.5799 0.6127 0.6522 0.6961 0.7411 0.7838 0.8216 0.8533 0.8795 0.9017 0.9224 0.9437 0.9667 0.9917 1.0176 1.0426 1.0640 1.0785 1.0815 1.0680 1.0427 - 0.1440 0.1684 0.1887 0.2088 0.2313 0.2581 0.2891 0.3229 0.3572 0.3893 0.4169 0.4390 0.4559 0.4696 0.4831 0.4996 0.5219 0.5518 0.5891 0.6321 0.6778 0.7226 0.7636 0.7987 0.8279 0.8523 0.8746 0.8974 0.9230 0.9522 0.9846 1.0183 1.0510 1.0805 1.1051 1.1229 1.1312 1.1239 1.0923 1.0446 - 0.1264 0.1518 0.1786 0.2091 0.2435 0.2799 0.3158 0.3484 0.3758 0.3972 0.4137 0.4277 0.4427 0.4618 0.4878 0.5215 0.5623 0.6075 0.6540 0.6980 0.7370 0.7700 0.7974 0.8217 0.8457 0.8724 0.9036 0.9395 0.9789 1.0193 1.0577 1.0919 1.1205 1.1434 1.1614 1.1743 1.1795 1.1677 1.1214 1.0467 - 0.1186 0.1525 0.1895 0.2287 0.2674 0.3025 0.3318 0.3545 0.3718 0.3865 0.4023 0.4229 0.4507 0.4866 0.5294 0.5762 0.6232 0.6668 0.7047 0.7363 0.7632 0.7882 0.8149 0.8460 0.8829 0.9248 0.9694 1.0132 1.0531 1.0868 1.1135 1.1341 1.1504 1.1647 1.1788 1.1934 1.2055 1.2019 1.1515 1.0492 - 0.1261 0.1679 0.2097 0.2488 0.2824 0.3089 0.3290 0.3454 0.3618 0.3824 0.4101 0.4461 0.4893 0.5368 0.5845 0.6287 0.6668 0.6985 0.7257 0.7519 0.7808 0.8156 0.8569 0.9032 0.9511 0.9961 1.0343 1.0638 1.0847 1.0991 1.1100 1.1202 1.1313 1.1444 1.1603 1.1803 1.2043 1.2196 1.1789 1.0518 - 0.1412 0.1851 0.2243 0.2570 0.2825 0.3024 0.3201 0.3401 0.3660 0.4000 0.4418 0.4890 0.5376 0.5833 0.6233 0.6566 0.6849 0.7118 0.7417 0.7780 0.8216 0.8708 0.9211 0.9672 1.0043 1.0302 1.0461 1.0556 1.0635 1.0740 1.0886 1.1063 1.1239 1.1385 1.1497 1.1629 1.1878 1.2211 1.2011 1.0546 - 0.1541 0.1949 0.2282 0.2543 0.2755 0.2957 0.3192 0.3495 0.3879 0.4332 0.4820 0.5301 0.5734 0.6100 0.6406 0.6682 0.6974 0.7325 0.7755 0.8254 0.8779 0.9266 0.9658 0.9921 1.0068 1.0148 1.0236 1.0397 1.0662 1.1016 1.1403 1.1748 1.1978 1.2042 1.1933 1.1753 1.1756 1.2123 1.2168 1.0574 - 0.1607 0.1968 0.2250 0.2483 0.2708 0.2968 0.3297 0.3704 0.4175 0.4671 0.5147 0.5568 0.5919 0.6216 0.6497 0.6813 0.7202 0.7676 0.8207 0.8735 0.9187 0.9509 0.9691 0.9778 0.9864 1.0050 1.0409 1.0948 1.1599 1.2257 1.2816 1.3209 1.3397 1.3325 1.2933 1.2296 1.1813 1.2008 1.2266 1.0601 - 0.1619 0.1943 0.2204 0.2446 0.2716 0.3050 0.3462 0.3936 0.4438 0.4922 0.5348 0.5703 0.6003 0.6289 0.6612 0.7015 0.7505 0.8050 0.8580 0.9017 0.9307 0.9452 0.9523 0.9642 0.9939 1.0491 1.1277 1.2175 1.3011 1.3649 1.4057 1.4309 1.4473 1.4467 1.4042 1.3079 1.2053 1.1921 1.2319 1.0623 - 0.1607 0.1913 0.2174 0.2442 0.2761 0.3154 0.3618 0.4122 0.4621 0.5072 0.5451 0.5766 0.6054 0.6367 0.6753 0.7231 0.7775 0.8320 0.8782 0.9096 0.9253 0.9322 0.9438 0.9757 1.0380 1.1290 1.2330 1.3253 1.3839 1.4030 1.3994 1.4043 1.4376 1.4810 1.4772 1.3801 1.2368 1.1877 1.2341 1.0640 - 0.1593 0.1893 0.2161 0.2453 0.2805 0.3234 0.3723 0.4234 0.4721 0.5146 0.5498 0.5797 0.6091 0.6435 0.6866 0.7384 0.7943 0.8461 0.8856 0.9084 0.9179 0.9255 0.9478 0.9997 1.0856 1.1943 1.2988 1.3671 1.3787 1.3405 1.2911 1.2834 1.3466 1.4498 1.5028 1.4261 1.2620 1.1866 1.2348 1.0651 - 0.1588 0.1886 0.2158 0.2459 0.2823 0.3263 0.3759 0.4271 0.4752 0.5168 0.5511 0.5807 0.6106 0.6462 0.6909 0.7439 0.7998 0.8502 0.8871 0.9071 0.9152 0.9243 0.9516 1.0112 1.1050 1.2173 1.3175 1.3711 1.3594 1.2953 1.2269 1.2157 1.2944 1.4258 1.5058 1.4412 1.2716 1.1865 1.2350 1.0655 - 0.5326 0.5843 0.6160 0.6461 0.6855 0.7365 0.7929 0.8440 0.8787 0.8906 0.8804 0.8562 0.8304 0.8154 0.8186 0.8396 0.8701 0.8970 0.9081 0.8974 0.8688 0.8343 0.8096 0.8062 0.8245 0.8528 0.8721 0.8670 0.8364 0.7970 0.7745 0.7842 0.8146 0.8305 0.8058 0.7648 0.7731 0.8367 0.8359 0.9384 - 0.5259 0.5769 0.6094 0.6414 0.6831 0.7357 0.7927 0.8429 0.8760 0.8860 0.8745 0.8501 0.8252 0.8118 0.8169 0.8393 0.8701 0.8963 0.9060 0.8941 0.8648 0.8307 0.8073 0.8054 0.8247 0.8529 0.8713 0.8651 0.8339 0.7951 0.7740 0.7849 0.8152 0.8300 0.8044 0.7638 0.7735 0.8371 0.8355 0.9390 - 0.5057 0.5553 0.5910 0.6291 0.6772 0.7341 0.7918 0.8391 0.8669 0.8715 0.8567 0.8320 0.8103 0.8022 0.8126 0.8385 0.8698 0.8935 0.8992 0.8836 0.8529 0.8205 0.8010 0.8034 0.8253 0.8533 0.8687 0.8590 0.8265 0.7896 0.7726 0.7869 0.8171 0.8284 0.8001 0.7612 0.7750 0.8382 0.8342 0.9406 - 0.4725 0.5226 0.5653 0.6137 0.6711 0.7328 0.7892 0.8300 0.8489 0.8456 0.8269 0.8038 0.7885 0.7893 0.8077 0.8378 0.8683 0.8870 0.8860 0.8654 0.8338 0.8052 0.7926 0.8017 0.8268 0.8530 0.8631 0.8481 0.8141 0.7813 0.7713 0.7906 0.8198 0.8254 0.7931 0.7576 0.7777 0.8398 0.8320 0.9434 - 0.4301 0.4855 0.5400 0.6014 0.6678 0.7312 0.7815 0.8113 0.8183 0.8069 0.7866 0.7693 0.7646 0.7771 0.8041 0.8368 0.8633 0.8738 0.8642 0.8389 0.8088 0.7876 0.7849 0.8018 0.8290 0.8507 0.8527 0.8313 0.7974 0.7716 0.7714 0.7961 0.8224 0.8199 0.7837 0.7541 0.7824 0.8415 0.8292 0.9471 - 0.3876 0.4544 0.5238 0.5969 0.6670 0.7248 0.7625 0.7774 0.7726 0.7567 0.7408 0.7349 0.7447 0.7695 0.8025 0.8331 0.8510 0.8504 0.8324 0.8054 0.7814 0.7717 0.7808 0.8045 0.8304 0.8438 0.8357 0.8088 0.7781 0.7628 0.7740 0.8028 0.8232 0.8111 0.7725 0.7520 0.7892 0.8429 0.8260 0.9519 - 0.3579 0.4394 0.5209 0.5976 0.6612 0.7044 0.7246 0.7252 0.7141 0.7019 0.6983 0.7090 0.7338 0.7671 0.7995 0.8214 0.8264 0.8144 0.7917 0.7689 0.7568 0.7616 0.7819 0.8084 0.8279 0.8295 0.8112 0.7821 0.7593 0.7578 0.7797 0.8090 0.8200 0.7981 0.7608 0.7528 0.7981 0.8432 0.8228 0.9576 - 0.3502 0.4416 0.5241 0.5914 0.6375 0.6609 0.6655 0.6596 0.6531 0.6549 0.6696 0.6969 0.7314 0.7645 0.7875 0.7949 0.7864 0.7676 0.7478 0.7368 0.7410 0.7600 0.7865 0.8091 0.8168 0.8055 0.7804 0.7553 0.7455 0.7586 0.7876 0.8119 0.8105 0.7811 0.7505 0.7580 0.8086 0.8416 0.8202 0.9641 - 0.3587 0.4463 0.5147 0.5613 0.5863 0.5948 0.5951 0.5964 0.6062 0.6277 0.6594 0.6956 0.7284 0.7504 0.7575 0.7503 0.7343 0.7182 0.7107 0.7171 0.7371 0.7643 0.7885 0.7998 0.7933 0.7723 0.7479 0.7341 0.7406 0.7655 0.7946 0.8077 0.7935 0.7620 0.7444 0.7681 0.8190 0.8375 0.8193 0.9712 - 0.3607 0.4295 0.4752 0.5016 0.5149 0.5236 0.5354 0.5557 0.5856 0.6221 0.6594 0.6904 0.7095 0.7144 0.7071 0.6937 0.6821 0.6797 0.6904 0.7131 0.7414 0.7662 0.7788 0.7750 0.7575 0.7356 0.7216 0.7247 0.7458 0.7750 0.7955 0.7937 0.7703 0.7449 0.7455 0.7826 0.8272 0.8308 0.8212 0.9788 - 0.3329 0.3795 0.4090 0.4301 0.4500 0.4748 0.5068 0.5451 0.5854 0.6218 0.6488 0.6631 0.6648 0.6574 0.6474 0.6420 0.6466 0.6631 0.6892 0.7182 0.7419 0.7536 0.7504 0.7354 0.7171 0.7057 0.7093 0.7289 0.7570 0.7800 0.7853 0.7700 0.7458 0.7351 0.7552 0.7990 0.8308 0.8222 0.8270 0.9867 - 0.2772 0.3145 0.3465 0.3804 0.4190 0.4622 0.5068 0.5478 0.5804 0.6012 0.6097 0.6084 0.6025 0.5981 0.6009 0.6141 0.6373 0.6664 0.6948 0.7157 0.7242 0.7197 0.7064 0.6921 0.6857 0.6929 0.7138 0.7414 0.7646 0.7726 0.7622 0.7415 0.7275 0.7370 0.7722 0.8130 0.8281 0.8137 0.8379 0.9947 - 0.2257 0.2719 0.3198 0.3705 0.4214 0.4680 0.5057 0.5318 0.5455 0.5491 0.5473 0.5457 0.5495 0.5623 0.5846 0.6137 0.6443 0.6702 0.6862 0.6901 0.6835 0.6718 0.6625 0.6625 0.6753 0.6992 0.7271 0.7493 0.7574 0.7492 0.7315 0.7180 0.7230 0.7512 0.7916 0.8200 0.8193 0.8086 0.8545 1.0024 - 0.2097 0.2693 0.3270 0.3797 0.4233 0.4546 0.4734 0.4818 0.4842 0.4861 0.4924 0.5067 0.5297 0.5594 0.5915 0.6205 0.6413 0.6512 0.6505 0.6429 0.6344 0.6316 0.6393 0.6583 0.6853 0.7129 0.7329 0.7391 0.7314 0.7164 0.7055 0.7102 0.7351 0.7727 0.8057 0.8169 0.8077 0.8107 0.8768 1.0096 - 0.2226 0.2818 0.3306 0.3675 0.3920 0.4062 0.4141 0.4209 0.4313 0.4486 0.4734 0.5042 0.5373 0.5678 0.5913 0.6050 0.6088 0.6053 0.5995 0.5972 0.6030 0.6191 0.6439 0.6725 0.6979 0.7137 0.7167 0.7086 0.6964 0.6900 0.6978 0.7226 0.7581 0.7911 0.8079 0.8053 0.7994 0.8233 0.9036 1.0162 - 0.2262 0.2694 0.3000 0.3209 0.3360 0.3498 0.3665 0.3886 0.4169 0.4495 0.4832 0.5140 0.5381 0.5534 0.5598 0.5596 0.5571 0.5572 0.5640 0.5797 0.6037 0.6321 0.6596 0.6803 0.6903 0.6893 0.6811 0.6729 0.6727 0.6861 0.7132 0.7477 0.7788 0.7963 0.7975 0.7924 0.8020 0.8479 0.9326 1.0220 - 0.1974 0.2267 0.2500 0.2723 0.2969 0.3259 0.3590 0.3945 0.4292 0.4598 0.4834 0.4987 0.5061 0.5081 0.5086 0.5118 0.5213 0.5387 0.5633 0.5922 0.6206 0.6435 0.6573 0.6610 0.6570 0.6506 0.6485 0.6563 0.6765 0.7068 0.7404 0.7683 0.7837 0.7858 0.7828 0.7895 0.8211 0.8826 0.9611 1.0269 - 0.1580 0.1898 0.2228 0.2590 0.2979 0.3370 0.3733 0.4039 0.4268 0.4415 0.4494 0.4531 0.4565 0.4632 0.4761 0.4962 0.5225 0.5522 0.5810 0.6046 0.6201 0.6265 0.6257 0.6219 0.6206 0.6270 0.6438 0.6707 0.7032 0.7345 0.7578 0.7694 0.7710 0.7703 0.7787 0.8066 0.8571 0.9223 0.9858 1.0310 - 0.1445 0.1879 0.2319 0.2746 0.3130 0.3443 0.3672 0.3819 0.3904 0.3961 0.4026 0.4131 0.4298 0.4532 0.4816 0.5120 0.5408 0.5641 0.5797 0.5872 0.5884 0.5872 0.5881 0.5956 0.6122 0.6377 0.6690 0.7008 0.7274 0.7447 0.7520 0.7533 0.7561 0.7692 0.7989 0.8457 0.9031 0.9597 1.0048 1.0343 - 0.1591 0.2055 0.2459 0.2786 0.3028 0.3190 0.3297 0.3383 0.3485 0.3632 0.3839 0.4102 0.4405 0.4714 0.4996 0.5219 0.5368 0.5444 0.5469 0.5479 0.5517 0.5617 0.5801 0.6062 0.6373 0.6690 0.6965 0.7160 0.7267 0.7310 0.7340 0.7427 0.7630 0.7976 0.8445 0.8974 0.9477 0.9883 1.0174 1.0370 - 0.1697 0.2054 0.2321 0.2515 0.2662 0.2796 0.2948 0.3143 0.3389 0.3679 0.3993 0.4299 0.4568 0.4775 0.4912 0.4987 0.5025 0.5060 0.5130 0.5263 0.5472 0.5749 0.6066 0.6382 0.6655 0.6855 0.6976 0.7038 0.7083 0.7168 0.7343 0.7636 0.8042 0.8522 0.9013 0.9452 0.9802 1.0058 1.0251 1.0394 - 0.1543 0.1791 0.1992 0.2184 0.2397 0.2648 0.2938 0.3255 0.3577 0.3875 0.4125 0.4312 0.4435 0.4510 0.4562 0.4626 0.4733 0.4904 0.5144 0.5440 0.5762 0.6072 0.6336 0.6531 0.6655 0.6729 0.6791 0.6891 0.7071 0.7355 0.7739 0.8193 0.8666 0.9106 0.9475 0.9760 0.9977 1.0154 1.0312 1.0418 - 0.1280 0.1541 0.1815 0.2121 0.2458 0.2806 0.3140 0.3434 0.3669 0.3838 0.3950 0.4025 0.4094 0.4188 0.4334 0.4544 0.4816 0.5129 0.5454 0.5755 0.6003 0.6186 0.6306 0.6388 0.6471 0.6597 0.6801 0.7101 0.7488 0.7936 0.8399 0.8832 0.9200 0.9493 0.9720 0.9907 1.0081 1.0252 1.0398 1.0444 - 0.1187 0.1546 0.1923 0.2301 0.2655 0.2956 0.3190 0.3355 0.3465 0.3547 0.3635 0.3758 0.3938 0.4182 0.4479 0.4807 0.5131 0.5421 0.5653 0.5820 0.5936 0.6028 0.6134 0.6293 0.6532 0.6860 0.7265 0.7717 0.8173 0.8594 0.8953 0.9240 0.9469 0.9664 0.9853 1.0053 1.0259 1.0442 1.0544 1.0475 - 0.1314 0.1726 0.2103 0.2424 0.2673 0.2852 0.2977 0.3077 0.3188 0.3338 0.3547 0.3816 0.4131 0.4465 0.4785 0.5063 0.5281 0.5438 0.5552 0.5657 0.5789 0.5984 0.6261 0.6623 0.7051 0.7509 0.7959 0.8364 0.8704 0.8979 0.9206 0.9411 0.9622 0.9857 1.0116 1.0381 1.0616 1.0768 1.0765 1.0513 - 0.1465 0.1823 0.2104 0.2314 0.2470 0.2602 0.2742 0.2920 0.3153 0.3441 0.3766 0.4101 0.4415 0.4682 0.4889 0.5041 0.5160 0.5281 0.5441 0.5670 0.5983 0.6376 0.6824 0.7288 0.7730 0.8119 0.8440 0.8701 0.8926 0.9145 0.9387 0.9666 0.9982 1.0315 1.0640 1.0923 1.1127 1.1199 1.1051 1.0557 - 0.1461 0.1725 0.1926 0.2097 0.2273 0.2482 0.2739 0.3043 0.3377 0.3714 0.4024 0.4284 0.4486 0.4638 0.4765 0.4902 0.5086 0.5345 0.5687 0.6102 0.6563 0.7030 0.7464 0.7839 0.8147 0.8400 0.8630 0.8870 0.9149 0.9480 0.9854 1.0248 1.0631 1.0975 1.1264 1.1488 1.1630 1.1636 1.1368 1.0609 - 0.1319 0.1545 0.1759 0.1998 0.2278 0.2601 0.2950 0.3296 0.3611 0.3874 0.4077 0.4233 0.4368 0.4518 0.4719 0.4996 0.5357 0.5787 0.6256 0.6723 0.7151 0.7517 0.7817 0.8072 0.8313 0.8579 0.8898 0.9278 0.9705 1.0146 1.0565 1.0928 1.1223 1.1455 1.1642 1.1802 1.1930 1.1960 1.1672 1.0666 - 0.1183 0.1453 0.1752 0.2092 0.2460 0.2828 0.3165 0.3447 0.3666 0.3832 0.3973 0.4126 0.4330 0.4612 0.4978 0.5415 0.5889 0.6360 0.6790 0.7155 0.7456 0.7715 0.7970 0.8260 0.8612 0.9031 0.9496 0.9968 1.0400 1.0758 1.1027 1.1215 1.1351 1.1468 1.1596 1.1754 1.1943 1.2101 1.1923 1.0727 - 0.1155 0.1507 0.1888 0.2282 0.2657 0.2981 0.3237 0.3430 0.3583 0.3734 0.3927 0.4193 0.4545 0.4975 0.5451 0.5930 0.6373 0.6751 0.7064 0.7332 0.7597 0.7899 0.8270 0.8713 0.9203 0.9693 1.0129 1.0472 1.0707 1.0851 1.0942 1.1022 1.1119 1.1240 1.1380 1.1545 1.1771 1.2066 1.2097 1.0788 - 0.1234 0.1647 0.2057 0.2436 0.2754 0.3000 0.3185 0.3344 0.3520 0.3754 0.4070 0.4473 0.4937 0.5424 0.5888 0.6295 0.6633 0.6918 0.7187 0.7488 0.7858 0.8306 0.8810 0.9319 0.9771 1.0117 1.0337 1.0455 1.0525 1.0611 1.0756 1.0965 1.1203 1.1407 1.1525 1.1564 1.1642 1.1937 1.2191 1.0848 - 0.1355 0.1785 0.2173 0.2497 0.2747 0.2941 0.3115 0.3314 0.3579 0.3929 0.4359 0.4840 0.5325 0.5771 0.6152 0.6466 0.6744 0.7031 0.7375 0.7801 0.8302 0.8832 0.9323 0.9710 0.9959 1.0086 1.0153 1.0251 1.0455 1.0799 1.1252 1.1734 1.2140 1.2370 1.2345 1.2073 1.1754 1.1815 1.2220 1.0904 - 0.1460 0.1872 0.2215 0.2485 0.2696 0.2885 0.3099 0.3379 0.3744 0.4185 0.4672 0.5156 0.5595 0.5964 0.6271 0.6549 0.6852 0.7224 0.7685 0.8214 0.8750 0.9217 0.9551 0.9737 0.9822 0.9905 1.0103 1.0498 1.1095 1.1818 1.2543 1.3153 1.3573 1.3747 1.3578 1.2984 1.2149 1.1771 1.2206 1.0953 - 0.1526 0.1908 0.2210 0.2447 0.2651 0.2869 0.3145 0.3504 0.3942 0.4430 0.4920 0.5366 0.5743 0.6054 0.6334 0.6638 0.7014 0.7483 0.8022 0.8565 0.9030 0.9350 0.9515 0.9589 0.9700 0.9988 1.0542 1.1346 1.2266 1.3114 1.3747 1.4153 1.4428 1.4627 1.4578 1.3937 1.2704 1.1815 1.2174 1.0994 - 0.1558 0.1913 0.2189 0.2414 0.2630 0.2887 0.3218 0.3633 0.4111 0.4610 0.5079 0.5483 0.5814 0.6100 0.6392 0.6745 0.7192 0.7723 0.8279 0.8775 0.9131 0.9321 0.9399 0.9498 0.9785 1.0378 1.1275 1.2316 1.3236 1.3796 1.3946 1.3901 1.4015 1.4461 1.4906 1.4603 1.3231 1.1911 1.2141 1.1024 - 0.1569 0.1909 0.2172 0.2396 0.2627 0.2912 0.3278 0.3723 0.4218 0.4713 0.5162 0.5538 0.5847 0.6129 0.6441 0.6833 0.7324 0.7879 0.8423 0.8864 0.9140 0.9260 0.9326 0.9507 0.9973 1.0794 1.1871 1.2929 1.3621 1.3719 1.3306 1.2829 1.2867 1.3671 1.4726 1.4909 1.3588 1.2000 1.2117 1.1042 - 0.1572 0.1906 0.2166 0.2390 0.2628 0.2923 0.3300 0.3755 0.4254 0.4747 0.5188 0.5554 0.5857 0.6139 0.6460 0.6867 0.7371 0.7932 0.8467 0.8886 0.9134 0.9234 0.9306 0.9528 1.0065 1.0964 1.2085 1.3111 1.3669 1.3546 1.2888 1.2236 1.2261 1.3237 1.4572 1.4982 1.3712 1.2035 1.2109 1.1048 - 0.4226 0.4743 0.5252 0.5835 0.6473 0.7086 0.7573 0.7856 0.7916 0.7801 0.7610 0.7458 0.7438 0.7583 0.7856 0.8164 0.8394 0.8458 0.8338 0.8091 0.7833 0.7686 0.7720 0.7915 0.8159 0.8305 0.8251 0.8011 0.7727 0.7587 0.7694 0.7955 0.8112 0.7958 0.7608 0.7512 0.7937 0.8327 0.8189 0.9863 - 0.4173 0.4699 0.5225 0.5824 0.6472 0.7084 0.7559 0.7826 0.7871 0.7748 0.7559 0.7418 0.7413 0.7572 0.7853 0.8161 0.8383 0.8436 0.8306 0.8057 0.7804 0.7668 0.7715 0.7917 0.8160 0.8297 0.8233 0.7989 0.7708 0.7580 0.7697 0.7960 0.8110 0.7947 0.7598 0.7512 0.7943 0.8325 0.8188 0.9867 - 0.4022 0.4581 0.5157 0.5801 0.6470 0.7071 0.7510 0.7728 0.7733 0.7591 0.7411 0.7304 0.7345 0.7544 0.7847 0.8150 0.8345 0.8364 0.8208 0.7954 0.7722 0.7622 0.7703 0.7923 0.8159 0.8270 0.8177 0.7921 0.7656 0.7560 0.7707 0.7975 0.8102 0.7915 0.7569 0.7515 0.7962 0.8320 0.8187 0.9878 - 0.3806 0.4427 0.5082 0.5784 0.6467 0.7033 0.7401 0.7542 0.7491 0.7334 0.7186 0.7144 0.7259 0.7515 0.7838 0.8119 0.8264 0.8228 0.8039 0.7789 0.7599 0.7561 0.7696 0.7937 0.8152 0.8215 0.8077 0.7809 0.7575 0.7537 0.7728 0.7996 0.8083 0.7860 0.7528 0.7527 0.7993 0.8309 0.8187 0.9895 - 0.3580 0.4296 0.5041 0.5787 0.6448 0.6935 0.7196 0.7242 0.7141 0.6998 0.6919 0.6977 0.7186 0.7498 0.7819 0.8049 0.8117 0.8013 0.7797 0.7577 0.7459 0.7508 0.7705 0.7955 0.8126 0.8119 0.7927 0.7658 0.7479 0.7520 0.7762 0.8016 0.8044 0.7781 0.7482 0.7555 0.8038 0.8292 0.8191 0.9919 - 0.3422 0.4243 0.5053 0.5789 0.6365 0.6722 0.6856 0.6819 0.6709 0.6632 0.6669 0.6851 0.7149 0.7486 0.7765 0.7905 0.7876 0.7711 0.7499 0.7347 0.7337 0.7485 0.7732 0.7962 0.8059 0.7965 0.7728 0.7485 0.7392 0.7525 0.7805 0.8020 0.7973 0.7679 0.7440 0.7607 0.8092 0.8266 0.8204 0.9949 - 0.3388 0.4278 0.5078 0.5719 0.6145 0.6346 0.6370 0.6308 0.6261 0.6311 0.6496 0.6795 0.7141 0.7446 0.7628 0.7650 0.7530 0.7343 0.7187 0.7149 0.7265 0.7501 0.7760 0.7928 0.7922 0.7746 0.7496 0.7320 0.7339 0.7561 0.7849 0.7990 0.7857 0.7558 0.7417 0.7686 0.8149 0.8229 0.8232 0.9983 - 0.3460 0.4324 0.5009 0.5478 0.5727 0.5806 0.5800 0.5805 0.5899 0.6114 0.6432 0.6790 0.7107 0.7307 0.7356 0.7267 0.7106 0.6963 0.6924 0.7030 0.7260 0.7535 0.7748 0.7809 0.7697 0.7472 0.7264 0.7203 0.7345 0.7625 0.7868 0.7902 0.7695 0.7435 0.7428 0.7791 0.8197 0.8182 0.8282 1.0021 - 0.3512 0.4233 0.4725 0.5008 0.5139 0.5201 0.5281 0.5444 0.5712 0.6062 0.6434 0.6751 0.6950 0.7005 0.6933 0.6796 0.6680 0.6661 0.6777 0.7012 0.7296 0.7533 0.7636 0.7574 0.7389 0.7185 0.7086 0.7169 0.7411 0.7688 0.7831 0.7745 0.7501 0.7338 0.7487 0.7911 0.8221 0.8129 0.8361 1.0060 - 0.3367 0.3885 0.4201 0.4391 0.4537 0.4714 0.4967 0.5305 0.5692 0.6070 0.6373 0.6553 0.6596 0.6532 0.6423 0.6346 0.6367 0.6513 0.6764 0.7054 0.7297 0.7416 0.7383 0.7232 0.7052 0.6953 0.7011 0.7226 0.7505 0.7704 0.7708 0.7526 0.7315 0.7303 0.7599 0.8026 0.8208 0.8079 0.8474 1.0101 - 0.2956 0.3328 0.3596 0.3847 0.4140 0.4497 0.4906 0.5324 0.5694 0.5964 0.6107 0.6129 0.6071 0.5997 0.5976 0.6055 0.6248 0.6524 0.6816 0.7049 0.7161 0.7134 0.7005 0.6856 0.6780 0.6847 0.7057 0.7335 0.7559 0.7619 0.7494 0.7288 0.7190 0.7356 0.7750 0.8108 0.8153 0.8051 0.8627 1.0141 - 0.2431 0.2807 0.3180 0.3594 0.4051 0.4518 0.4946 0.5287 0.5507 0.5605 0.5606 0.5563 0.5540 0.5590 0.5743 0.5991 0.6292 0.6580 0.6789 0.6876 0.6838 0.6722 0.6605 0.6568 0.6665 0.6890 0.7173 0.7406 0.7495 0.7411 0.7228 0.7100 0.7179 0.7498 0.7902 0.8128 0.8068 0.8068 0.8818 1.0179 - 0.2078 0.2579 0.3101 0.3629 0.4122 0.4532 0.4824 0.4989 0.5047 0.5044 0.5038 0.5085 0.5220 0.5450 0.5749 0.6063 0.6331 0.6502 0.6552 0.6499 0.6397 0.6320 0.6335 0.6476 0.6725 0.7012 0.7243 0.7339 0.7278 0.7122 0.6999 0.7040 0.7299 0.7687 0.8001 0.8073 0.7981 0.8155 0.9041 1.0215 - 0.2051 0.2650 0.3206 0.3684 0.4047 0.4282 0.4403 0.4450 0.4477 0.4539 0.4674 0.4897 0.5192 0.5518 0.5819 0.6046 0.6165 0.6178 0.6118 0.6046 0.6025 0.6105 0.6298 0.6571 0.6855 0.7067 0.7149 0.7094 0.6964 0.6866 0.6910 0.7143 0.7506 0.7845 0.8003 0.7962 0.7944 0.8331 0.9282 1.0249 - 0.2188 0.2735 0.3164 0.3470 0.3661 0.3772 0.3851 0.3950 0.4107 0.4338 0.4636 0.4966 0.5283 0.5539 0.5703 0.5767 0.5753 0.5707 0.5687 0.5742 0.5898 0.6144 0.6433 0.6698 0.6874 0.6925 0.6865 0.6759 0.6701 0.6776 0.7014 0.7363 0.7700 0.7894 0.7905 0.7856 0.8010 0.8598 0.9524 1.0280 - 0.2165 0.2550 0.2815 0.2999 0.3148 0.3305 0.3506 0.3768 0.4081 0.4420 0.4744 0.5012 0.5198 0.5292 0.5312 0.5297 0.5295 0.5352 0.5496 0.5727 0.6012 0.6298 0.6525 0.6650 0.6663 0.6597 0.6522 0.6517 0.6643 0.6907 0.7252 0.7575 0.7772 0.7809 0.7771 0.7843 0.8218 0.8932 0.9744 1.0310 - 0.1864 0.2138 0.2364 0.2594 0.2857 0.3167 0.3513 0.3870 0.4202 0.4477 0.4671 0.4781 0.4823 0.4833 0.4854 0.4927 0.5077 0.5307 0.5591 0.5886 0.6139 0.6309 0.6377 0.6358 0.6302 0.6275 0.6339 0.6527 0.6824 0.7166 0.7464 0.7642 0.7684 0.7662 0.7718 0.8002 0.8565 0.9289 0.9925 1.0339 - 0.1511 0.1824 0.2154 0.2520 0.2909 0.3295 0.3643 0.3925 0.4125 0.4244 0.4302 0.4334 0.4380 0.4476 0.4643 0.4882 0.5171 0.5471 0.5736 0.5929 0.6030 0.6048 0.6020 0.6001 0.6046 0.6193 0.6446 0.6769 0.7096 0.7354 0.7496 0.7530 0.7528 0.7604 0.7866 0.8354 0.8992 0.9611 1.0057 1.0372 - 0.1400 0.1823 0.2255 0.2673 0.3045 0.3343 0.3555 0.3686 0.3760 0.3814 0.3886 0.4008 0.4198 0.4453 0.4750 0.5055 0.5324 0.5526 0.5643 0.5685 0.5681 0.5680 0.5729 0.5866 0.6098 0.6403 0.6731 0.7021 0.7224 0.7323 0.7350 0.7376 0.7497 0.7783 0.8249 0.8831 0.9405 0.9852 1.0148 1.0408 - 0.1534 0.1989 0.2387 0.2709 0.2944 0.3099 0.3200 0.3282 0.3384 0.3535 0.3749 0.4020 0.4326 0.4633 0.4903 0.5106 0.5231 0.5286 0.5302 0.5320 0.5384 0.5527 0.5756 0.6055 0.6382 0.6685 0.6917 0.7057 0.7118 0.7151 0.7226 0.7414 0.7752 0.8228 0.8775 0.9297 0.9713 1.0000 1.0217 1.0452 - 0.1647 0.2007 0.2275 0.2468 0.2609 0.2734 0.2875 0.3061 0.3301 0.3589 0.3901 0.4205 0.4469 0.4669 0.4796 0.4861 0.4894 0.4934 0.5019 0.5177 0.5414 0.5714 0.6041 0.6349 0.6594 0.6757 0.6843 0.6892 0.6960 0.7110 0.7384 0.7786 0.8279 0.8795 0.9261 0.9625 0.9887 1.0090 1.0298 1.0504 - 0.1536 0.1784 0.1976 0.2152 0.2343 0.2573 0.2847 0.3155 0.3474 0.3775 0.4029 0.4220 0.4344 0.4416 0.4466 0.4529 0.4639 0.4818 0.5070 0.5376 0.5703 0.6009 0.6258 0.6431 0.6534 0.6599 0.6676 0.6819 0.7067 0.7431 0.7889 0.8386 0.8860 0.9259 0.9563 0.9791 0.9988 1.0196 1.0424 1.0566 - 0.1291 0.1528 0.1772 0.2048 0.2360 0.2696 0.3030 0.3334 0.3583 0.3767 0.3887 0.3964 0.4028 0.4112 0.4248 0.4451 0.4721 0.5036 0.5364 0.5666 0.5911 0.6085 0.6197 0.6276 0.6368 0.6520 0.6768 0.7121 0.7561 0.8045 0.8516 0.8928 0.9254 0.9501 0.9705 0.9908 1.0141 1.0395 1.0620 1.0638 - 0.1151 0.1473 0.1821 0.2186 0.2544 0.2863 0.3121 0.3309 0.3433 0.3516 0.3592 0.3695 0.3852 0.4075 0.4360 0.4685 0.5014 0.5312 0.5553 0.5725 0.5841 0.5931 0.6040 0.6209 0.6469 0.6827 0.7264 0.7741 0.8207 0.8619 0.8953 0.9213 0.9427 0.9636 0.9874 1.0153 1.0453 1.0725 1.0885 1.0721 - 0.1218 0.1614 0.1997 0.2342 0.2624 0.2832 0.2973 0.3072 0.3163 0.3282 0.3454 0.3691 0.3986 0.4316 0.4647 0.4943 0.5181 0.5353 0.5473 0.5574 0.5698 0.5885 0.6162 0.6532 0.6974 0.7450 0.7911 0.8318 0.8651 0.8915 0.9138 0.9359 0.9613 0.9917 1.0262 1.0615 1.0929 1.1149 1.1197 1.0811 - 0.1373 0.1756 0.2073 0.2317 0.2492 0.2619 0.2733 0.2868 0.3052 0.3298 0.3598 0.3930 0.4261 0.4556 0.4794 0.4969 0.5096 0.5208 0.5346 0.5549 0.5840 0.6222 0.6672 0.7149 0.7608 0.8011 0.8340 0.8604 0.8833 0.9068 0.9343 0.9677 1.0061 1.0466 1.0854 1.1188 1.1437 1.1571 1.1513 1.0908 - 0.1445 0.1745 0.1968 0.2136 0.2282 0.2438 0.2636 0.2888 0.3192 0.3525 0.3856 0.4155 0.4397 0.4579 0.4714 0.4836 0.4984 0.5196 0.5496 0.5885 0.6339 0.6819 0.7278 0.7681 0.8011 0.8278 0.8514 0.8762 0.9059 0.9422 0.9842 1.0285 1.0711 1.1084 1.1385 1.1615 1.1782 1.1873 1.1786 1.1007 - 0.1375 0.1604 0.1790 0.1973 0.2186 0.2446 0.2754 0.3091 0.3430 0.3737 0.3991 0.4184 0.4330 0.4459 0.4611 0.4825 0.5124 0.5511 0.5965 0.6447 0.6910 0.7318 0.7654 0.7928 0.8173 0.8434 0.8750 0.9139 0.9589 1.0063 1.0511 1.0891 1.1183 1.1396 1.1558 1.1701 1.1845 1.1982 1.1979 1.1106 - 0.1237 0.1460 0.1689 0.1954 0.2266 0.2613 0.2966 0.3295 0.3572 0.3786 0.3947 0.4082 0.4231 0.4434 0.4719 0.5094 0.5542 0.6024 0.6496 0.6917 0.7266 0.7551 0.7805 0.8073 0.8399 0.8802 0.9274 0.9773 1.0242 1.0628 1.0905 1.1080 1.1189 1.1277 1.1379 1.1513 1.1690 1.1916 1.2076 1.1202 - 0.1136 0.1411 0.1720 0.2070 0.2442 0.2802 0.3119 0.3373 0.3562 0.3710 0.3852 0.4033 0.4288 0.4634 0.5062 0.5540 0.6024 0.6468 0.6844 0.7150 0.7414 0.7682 0.8001 0.8401 0.8878 0.9394 0.9886 1.0290 1.0571 1.0730 1.0810 1.0873 1.0965 1.1100 1.1255 1.1399 1.1543 1.1773 1.2088 1.1291 - 0.1122 0.1466 0.1842 0.2231 0.2598 0.2911 0.3155 0.3336 0.3483 0.3641 0.3851 0.4146 0.4532 0.4990 0.5479 0.5952 0.6368 0.6712 0.6997 0.7264 0.7565 0.7940 0.8402 0.8921 0.9439 0.9881 1.0194 1.0368 1.0445 1.0506 1.0630 1.0858 1.1166 1.1474 1.1685 1.1731 1.1654 1.1679 1.2042 1.1371 - 0.1178 0.1574 0.1977 0.2355 0.2676 0.2925 0.3112 0.3267 0.3438 0.3668 0.3985 0.4391 0.4861 0.5351 0.5813 0.6211 0.6539 0.6819 0.7101 0.7434 0.7854 0.8355 0.8891 0.9388 0.9773 1.0006 1.0110 1.0166 1.0286 1.0562 1.1021 1.1600 1.2176 1.2605 1.2768 1.2594 1.2128 1.1726 1.1972 1.1441 - 0.1263 0.1681 0.2076 0.2417 0.2685 0.2888 0.3056 0.3234 0.3469 0.3790 0.4199 0.4670 0.5159 0.5617 0.6011 0.6336 0.6619 0.6911 0.7264 0.7707 0.8228 0.8771 0.9253 0.9602 0.9792 0.9869 0.9944 1.0155 1.0601 1.1288 1.2115 1.2919 1.3553 1.3934 1.4009 1.3676 1.2855 1.1925 1.1905 1.1499 - 0.1341 0.1760 0.2129 0.2430 0.2660 0.2844 0.3025 0.3251 0.3557 0.3952 0.4415 0.4905 0.5370 0.5775 0.6109 0.6398 0.6690 0.7041 0.7483 0.8007 0.8557 0.9047 0.9400 0.9588 0.9665 0.9758 1.0026 1.0579 1.1414 1.2390 1.3288 1.3936 1.4314 1.4544 1.4688 1.4508 1.3600 1.2217 1.1857 1.1544 - 0.1397 0.1805 0.2150 0.2421 0.2631 0.2815 0.3022 0.3296 0.3657 0.4098 0.4584 0.5065 0.5496 0.5856 0.6157 0.6443 0.6770 0.7183 0.7690 0.8245 0.8767 0.9168 0.9400 0.9496 0.9578 0.9819 1.0363 1.1235 1.2287 1.3241 1.3827 1.3975 1.3914 1.4037 1.4501 1.4832 1.4162 1.2509 1.1830 1.1576 - 0.1428 0.1827 0.2155 0.2410 0.2612 0.2803 0.3032 0.3337 0.3731 0.4194 0.4685 0.5153 0.5559 0.5893 0.6182 0.6477 0.6836 0.7291 0.7829 0.8385 0.8867 0.9198 0.9359 0.9430 0.9572 0.9966 1.0718 1.1762 1.2835 1.3574 1.3717 1.3329 1.2880 1.2990 1.3863 1.4787 1.4472 1.2719 1.1818 1.1595 - 0.1438 0.1833 0.2155 0.2405 0.2605 0.2800 0.3037 0.3353 0.3758 0.4227 0.4719 0.5181 0.5577 0.5904 0.6190 0.6491 0.6862 0.7331 0.7877 0.8429 0.8895 0.9200 0.9340 0.9410 0.9583 1.0039 1.0863 1.1952 1.3002 1.3620 1.3557 1.2942 1.2342 1.2465 1.3527 1.4713 1.4565 1.2794 1.1815 1.1602 - 0.3469 0.4166 0.4898 0.5630 0.6267 0.6720 0.6942 0.6956 0.6843 0.6715 0.6676 0.6784 0.7033 0.7356 0.7652 0.7824 0.7826 0.7678 0.7465 0.7299 0.7273 0.7409 0.7649 0.7870 0.7951 0.7839 0.7594 0.7365 0.7312 0.7490 0.7780 0.7948 0.7828 0.7518 0.7377 0.7675 0.8113 0.8085 0.8272 1.0088 - 0.3446 0.4155 0.4897 0.5631 0.6261 0.6701 0.6909 0.6914 0.6798 0.6677 0.6649 0.6769 0.7028 0.7354 0.7645 0.7808 0.7801 0.7647 0.7435 0.7278 0.7262 0.7407 0.7650 0.7868 0.7941 0.7822 0.7574 0.7351 0.7308 0.7492 0.7782 0.7944 0.7817 0.7507 0.7377 0.7682 0.8115 0.8081 0.8278 1.0090 - 0.3388 0.4132 0.4898 0.5632 0.6238 0.6637 0.6805 0.6784 0.6666 0.6565 0.6573 0.6731 0.7015 0.7346 0.7621 0.7757 0.7722 0.7555 0.7349 0.7216 0.7233 0.7404 0.7655 0.7860 0.7908 0.7768 0.7516 0.7310 0.7295 0.7500 0.7789 0.7930 0.7784 0.7479 0.7377 0.7703 0.8122 0.8069 0.8297 1.0095 - 0.3321 0.4118 0.4909 0.5627 0.6181 0.6510 0.6616 0.6564 0.6455 0.6399 0.6470 0.6687 0.7003 0.7331 0.7572 0.7658 0.7581 0.7399 0.7212 0.7126 0.7196 0.7405 0.7662 0.7841 0.7847 0.7675 0.7422 0.7248 0.7280 0.7516 0.7798 0.7903 0.7727 0.7435 0.7383 0.7741 0.8131 0.8051 0.8329 1.0102 - 0.3284 0.4133 0.4928 0.5595 0.6059 0.6292 0.6330 0.6259 0.6188 0.6210 0.6370 0.6655 0.6996 0.7299 0.7480 0.7496 0.7371 0.7185 0.7041 0.7025 0.7167 0.7416 0.7666 0.7799 0.7748 0.7541 0.7299 0.7179 0.7273 0.7541 0.7802 0.7853 0.7644 0.7382 0.7401 0.7795 0.8141 0.8029 0.8378 1.0112 - 0.3304 0.4175 0.4927 0.5493 0.5833 0.5962 0.5950 0.5901 0.5911 0.6043 0.6304 0.6645 0.6981 0.7224 0.7316 0.7254 0.7095 0.6932 0.6862 0.6942 0.7159 0.7434 0.7651 0.7715 0.7597 0.7367 0.7162 0.7120 0.7287 0.7574 0.7791 0.7773 0.7536 0.7327 0.7439 0.7863 0.8145 0.8004 0.8446 1.0124 - 0.3370 0.4201 0.4842 0.5264 0.5471 0.5525 0.5519 0.5549 0.5685 0.5943 0.6286 0.6641 0.6922 0.7066 0.7056 0.6931 0.6774 0.6680 0.6718 0.6901 0.7176 0.7440 0.7590 0.7566 0.7390 0.7168 0.7037 0.7094 0.7329 0.7609 0.7751 0.7653 0.7407 0.7283 0.7500 0.7938 0.8137 0.7982 0.8538 1.0138 - 0.3413 0.4122 0.4603 0.4874 0.4991 0.5043 0.5119 0.5287 0.5564 0.5920 0.6288 0.6590 0.6763 0.6788 0.6695 0.6557 0.6462 0.6484 0.6645 0.6912 0.7197 0.7400 0.7449 0.7337 0.7138 0.6972 0.6953 0.7118 0.7395 0.7626 0.7664 0.7492 0.7274 0.7266 0.7586 0.8008 0.8111 0.7971 0.8654 1.0153 - 0.3322 0.3858 0.4182 0.4362 0.4484 0.4629 0.4854 0.5171 0.5550 0.5928 0.6235 0.6417 0.6458 0.6389 0.6275 0.6200 0.6230 0.6390 0.6653 0.6946 0.7174 0.7267 0.7205 0.7041 0.6878 0.6824 0.6940 0.7192 0.7460 0.7594 0.7519 0.7305 0.7162 0.7294 0.7694 0.8058 0.8063 0.7980 0.8796 1.0170 - 0.3024 0.3409 0.3658 0.3863 0.4096 0.4398 0.4772 0.5180 0.5562 0.5859 0.6030 0.6071 0.6017 0.5932 0.5892 0.5952 0.6133 0.6405 0.6700 0.6935 0.7045 0.7011 0.6876 0.6729 0.6671 0.6766 0.7001 0.7283 0.7478 0.7486 0.7319 0.7125 0.7108 0.7380 0.7809 0.8072 0.7997 0.8024 0.8962 1.0189 - 0.2572 0.2909 0.3211 0.3545 0.3937 0.4373 0.4808 0.5187 0.5460 0.5605 0.5634 0.5590 0.5539 0.5546 0.5654 0.5872 0.6163 0.6460 0.6690 0.6798 0.6772 0.6655 0.6529 0.6484 0.6580 0.6811 0.7101 0.7331 0.7400 0.7290 0.7097 0.7000 0.7143 0.7517 0.7905 0.8037 0.7930 0.8116 0.9146 1.0209 - 0.2155 0.2569 0.3008 0.3486 0.3975 0.4425 0.4786 0.5024 0.5137 0.5152 0.5124 0.5116 0.5182 0.5350 0.5612 0.5923 0.6218 0.6432 0.6524 0.6496 0.6392 0.6291 0.6272 0.6385 0.6623 0.6916 0.7162 0.7267 0.7204 0.7039 0.6916 0.6979 0.7272 0.7673 0.7949 0.7957 0.7889 0.8270 0.9339 1.0232 - 0.1968 0.2506 0.3050 0.3568 0.4012 0.4340 0.4538 0.4624 0.4639 0.4643 0.4694 0.4829 0.5060 0.5362 0.5683 0.5962 0.6147 0.6214 0.6178 0.6091 0.6025 0.6048 0.6193 0.6446 0.6739 0.6982 0.7097 0.7060 0.6926 0.6813 0.6846 0.7084 0.7460 0.7794 0.7919 0.7855 0.7909 0.8489 0.9529 1.0259 - 0.2032 0.2617 0.3133 0.3545 0.3831 0.3996 0.4072 0.4113 0.4174 0.4301 0.4512 0.4800 0.5126 0.5437 0.5681 0.5823 0.5859 0.5818 0.5758 0.5742 0.5822 0.6013 0.6285 0.6574 0.6800 0.6902 0.6871 0.6759 0.6670 0.6710 0.6929 0.7282 0.7632 0.7825 0.7820 0.7779 0.8027 0.8765 0.9703 1.0291 - 0.2146 0.2640 0.3009 0.3256 0.3407 0.3506 0.3604 0.3747 0.3961 0.4244 0.4570 0.4895 0.5172 0.5362 0.5453 0.5461 0.5428 0.5410 0.5459 0.5606 0.5846 0.6138 0.6414 0.6610 0.6686 0.6647 0.6553 0.6496 0.6562 0.6789 0.7133 0.7482 0.7706 0.7749 0.7701 0.7796 0.8259 0.9075 0.9849 1.0330 - 0.2066 0.2406 0.2638 0.2808 0.2964 0.3148 0.3386 0.3682 0.4016 0.4351 0.4646 0.4865 0.4993 0.5040 0.5036 0.5032 0.5075 0.5200 0.5416 0.5696 0.5992 0.6242 0.6396 0.6438 0.6392 0.6321 0.6307 0.6416 0.6665 0.7008 0.7347 0.7575 0.7644 0.7614 0.7655 0.7960 0.8596 0.9379 0.9960 1.0378 - 0.1762 0.2019 0.2244 0.2484 0.2766 0.3094 0.3449 0.3801 0.4111 0.4349 0.4501 0.4574 0.4597 0.4612 0.4662 0.4783 0.4987 0.5258 0.5558 0.5834 0.6038 0.6142 0.6152 0.6108 0.6075 0.6120 0.6284 0.6565 0.6908 0.7226 0.7437 0.7510 0.7499 0.7536 0.7774 0.8287 0.8988 0.9638 1.0041 1.0437 - 0.1450 0.1758 0.2091 0.2460 0.2849 0.3226 0.3557 0.3814 0.3986 0.4080 0.4124 0.4157 0.4222 0.4350 0.4554 0.4824 0.5126 0.5414 0.5645 0.5788 0.5841 0.5831 0.5808 0.5832 0.5950 0.6178 0.6491 0.6827 0.7112 0.7289 0.7351 0.7356 0.7415 0.7644 0.8099 0.8724 0.9358 0.9825 1.0106 1.0508 - 0.1359 0.1773 0.2197 0.2607 0.2967 0.3251 0.3447 0.3563 0.3629 0.3682 0.3762 0.3902 0.4113 0.4385 0.4691 0.4989 0.5236 0.5404 0.5486 0.5503 0.5497 0.5520 0.5619 0.5816 0.6102 0.6434 0.6749 0.6989 0.7123 0.7169 0.7194 0.7293 0.7550 0.7994 0.8573 0.9164 0.9637 0.9941 1.0181 1.0592 - 0.1483 0.1928 0.2321 0.2639 0.2869 0.3018 0.3113 0.3192 0.3293 0.3447 0.3667 0.3944 0.4253 0.4555 0.4812 0.4997 0.5100 0.5140 0.5152 0.5183 0.5277 0.5460 0.5729 0.6053 0.6380 0.6654 0.6838 0.6930 0.6969 0.7027 0.7183 0.7491 0.7953 0.8508 0.9055 0.9498 0.9802 1.0025 1.0293 1.0690 - 0.1599 0.1962 0.2235 0.2428 0.2564 0.2680 0.2812 0.2988 0.3221 0.3505 0.3815 0.4118 0.4378 0.4571 0.4689 0.4747 0.4778 0.4823 0.4923 0.5103 0.5364 0.5681 0.6011 0.6303 0.6519 0.6647 0.6711 0.6765 0.6878 0.7108 0.7480 0.7969 0.8506 0.9005 0.9401 0.9682 0.9900 1.0141 1.0467 1.0799 - 0.1528 0.1780 0.1967 0.2129 0.2301 0.2508 0.2764 0.3061 0.3376 0.3680 0.3940 0.4136 0.4263 0.4335 0.4381 0.4442 0.4553 0.4738 0.4998 0.5313 0.5643 0.5944 0.6178 0.6332 0.6419 0.6483 0.6583 0.6776 0.7092 0.7527 0.8034 0.8543 0.8986 0.9326 0.9575 0.9788 1.0035 1.0352 1.0712 1.0918 - 0.1311 0.1531 0.1746 0.1990 0.2274 0.2593 0.2923 0.3235 0.3500 0.3700 0.3833 0.3914 0.3973 0.4048 0.4171 0.4364 0.4628 0.4943 0.5273 0.5578 0.5823 0.5992 0.6097 0.6175 0.6277 0.6455 0.6743 0.7143 0.7623 0.8127 0.8590 0.8968 0.9252 0.9474 0.9695 0.9967 1.0308 1.0685 1.1013 1.1044 - 0.1139 0.1423 0.1736 0.2079 0.2432 0.2763 0.3045 0.3259 0.3403 0.3495 0.3564 0.3648 0.3780 0.3979 0.4247 0.4564 0.4897 0.5206 0.5457 0.5638 0.5756 0.5846 0.5954 0.6128 0.6403 0.6784 0.7247 0.7743 0.8213 0.8613 0.8924 0.9165 0.9384 0.9635 0.9953 1.0336 1.0741 1.1100 1.1336 1.1173 - 0.1140 0.1508 0.1884 0.2243 0.2555 0.2798 0.2966 0.3077 0.3159 0.3250 0.3385 0.3585 0.3853 0.4171 0.4506 0.4820 0.5081 0.5273 0.5403 0.5503 0.5617 0.5791 0.6059 0.6429 0.6881 0.7371 0.7845 0.8256 0.8585 0.8843 0.9070 0.9318 0.9627 1.0010 1.0441 1.0868 1.1236 1.1504 1.1632 1.1302 - 0.1268 0.1661 0.2009 0.2294 0.2503 0.2646 0.2751 0.2854 0.2991 0.3187 0.3449 0.3763 0.4098 0.4418 0.4690 0.4895 0.5040 0.5150 0.5269 0.5442 0.5703 0.6064 0.6508 0.6994 0.7471 0.7893 0.8236 0.8506 0.8741 0.8990 0.9299 0.9685 1.0133 1.0597 1.1022 1.1366 1.1616 1.1783 1.1855 1.1426 - 0.1386 0.1727 0.1990 0.2181 0.2322 0.2446 0.2589 0.2781 0.3034 0.3341 0.3674 0.4000 0.4285 0.4507 0.4668 0.4790 0.4913 0.5080 0.5330 0.5677 0.6110 0.6594 0.7076 0.7511 0.7871 0.8156 0.8399 0.8651 0.8958 0.9345 0.9803 1.0289 1.0746 1.1125 1.1405 1.1599 1.1742 1.1870 1.1976 1.1541 - 0.1398 0.1659 0.1852 0.2008 0.2165 0.2356 0.2600 0.2898 0.3230 0.3563 0.3865 0.4110 0.4292 0.4427 0.4552 0.4709 0.4940 0.5265 0.5681 0.6157 0.6645 0.7096 0.7477 0.7782 0.8038 0.8292 0.8596 0.8981 0.9444 0.9945 1.0424 1.0822 1.1108 1.1291 1.1408 1.1507 1.1623 1.1784 1.1992 1.1645 - 0.1310 0.1523 0.1706 0.1901 0.2137 0.2424 0.2753 0.3097 0.3421 0.3695 0.3907 0.4063 0.4192 0.4337 0.4540 0.4832 0.5218 0.5678 0.6169 0.6638 0.7047 0.7378 0.7650 0.7906 0.8200 0.8574 0.9034 0.9549 1.0054 1.0479 1.0779 1.0953 1.1041 1.1105 1.1192 1.1312 1.1455 1.1636 1.1930 1.1736 - 0.1193 0.1411 0.1641 0.1913 0.2233 0.2583 0.2933 0.3247 0.3503 0.3693 0.3837 0.3972 0.4141 0.4386 0.4727 0.5156 0.5639 0.6127 0.6571 0.6941 0.7240 0.7500 0.7775 0.8119 0.8557 0.9071 0.9604 1.0077 1.0423 1.0620 1.0704 1.0752 1.0840 1.1005 1.1218 1.1408 1.1513 1.1574 1.1834 1.1813 - 0.1111 0.1373 0.1671 0.2013 0.2380 0.2737 0.3050 0.3297 0.3479 0.3621 0.3764 0.3954 0.4228 0.4599 0.5051 0.5544 0.6025 0.6450 0.6796 0.7078 0.7341 0.7643 0.8030 0.8513 0.9054 0.9578 1.0000 1.0267 1.0387 1.0433 1.0517 1.0728 1.1083 1.1508 1.1874 1.2053 1.1971 1.1712 1.1747 1.1877 - 0.1087 0.1404 0.1760 0.2139 0.2507 0.2830 0.3084 0.3271 0.3416 0.3565 0.3764 0.4049 0.4431 0.4891 0.5387 0.5865 0.6281 0.6620 0.6900 0.7172 0.7494 0.7908 0.8415 0.8964 0.9472 0.9851 1.0062 1.0139 1.0191 1.0361 1.0747 1.1348 1.2049 1.2672 1.3065 1.3124 1.2774 1.2069 1.1702 1.1927 - 0.1109 0.1472 0.1859 0.2242 0.2584 0.2860 0.3064 0.3221 0.3372 0.3567 0.3845 0.4219 0.4674 0.5167 0.5647 0.6069 0.6414 0.6702 0.6981 0.7310 0.7733 0.8246 0.8799 0.9300 0.9664 0.9853 0.9917 0.9987 1.0230 1.0763 1.1572 1.2505 1.3335 1.3900 1.4170 1.4146 1.3666 1.2571 1.1708 1.1965 - 0.1152 0.1543 0.1939 0.2308 0.2616 0.2852 0.3028 0.3183 0.3366 0.3619 0.3967 0.4402 0.4888 0.5374 0.5813 0.6178 0.6480 0.6762 0.7084 0.7493 0.7997 0.8551 0.9068 0.9455 0.9664 0.9735 0.9806 1.0061 1.0644 1.1557 1.2624 1.3559 1.4141 1.4381 1.4506 1.4630 1.4354 1.3092 1.1752 1.1993 - 0.1194 0.1599 0.1992 0.2341 0.2622 0.2833 0.2999 0.3168 0.3386 0.3689 0.4085 0.4551 0.5042 0.5505 0.5904 0.6232 0.6520 0.6822 0.7196 0.7668 0.8214 0.8759 0.9204 0.9480 0.9591 0.9647 0.9838 1.0345 1.1229 1.2348 1.3377 1.3972 1.4027 1.3835 1.3922 1.4461 1.4704 1.3519 1.1811 1.2011 - 0.1223 0.1632 0.2020 0.2355 0.2618 0.2817 0.2983 0.3166 0.3410 0.3744 0.4166 0.4644 0.5130 0.5574 0.5947 0.6258 0.6546 0.6871 0.7282 0.7789 0.8347 0.8867 0.9254 0.9460 0.9533 0.9625 0.9943 1.0638 1.1689 1.2837 1.3666 1.3834 1.3377 1.2842 1.2987 1.3996 1.4792 1.3787 1.1860 1.2022 - 0.1233 0.1644 0.2028 0.2358 0.2616 0.2811 0.2979 0.3167 0.3420 0.3764 0.4194 0.4676 0.5158 0.5595 0.5960 0.6266 0.6556 0.6890 0.7314 0.7831 0.8390 0.8899 0.9264 0.9448 0.9514 0.9627 0.9997 1.0758 1.1855 1.2987 1.3708 1.3686 1.3019 1.2357 1.2543 1.3758 1.4793 1.3877 1.1879 1.2025 - 0.3194 0.4031 0.4808 0.5443 0.5862 0.6046 0.6046 0.5962 0.5909 0.5974 0.6187 0.6514 0.6868 0.7145 0.7268 0.7218 0.7047 0.6857 0.6761 0.6829 0.7056 0.7353 0.7588 0.7649 0.7506 0.7242 0.7021 0.6995 0.7206 0.7531 0.7742 0.7671 0.7388 0.7214 0.7443 0.7931 0.8096 0.7870 0.8656 1.0137 - 0.3195 0.4035 0.4809 0.5434 0.5839 0.6012 0.6007 0.5925 0.5881 0.5957 0.6182 0.6514 0.6866 0.7135 0.7249 0.7191 0.7018 0.6832 0.6746 0.6824 0.7057 0.7354 0.7584 0.7636 0.7487 0.7224 0.7009 0.6993 0.7211 0.7535 0.7737 0.7658 0.7375 0.7211 0.7450 0.7937 0.8093 0.7870 0.8667 1.0138 - 0.3201 0.4049 0.4809 0.5400 0.5766 0.5907 0.5888 0.5817 0.5801 0.5914 0.6168 0.6513 0.6858 0.7104 0.7188 0.7108 0.6930 0.6760 0.6702 0.6811 0.7062 0.7358 0.7569 0.7596 0.7431 0.7170 0.6978 0.6991 0.7227 0.7545 0.7723 0.7619 0.7338 0.7203 0.7471 0.7955 0.8085 0.7869 0.8698 1.0141 - 0.3222 0.4072 0.4797 0.5328 0.5629 0.5723 0.5694 0.5649 0.5686 0.5858 0.6155 0.6514 0.6839 0.7041 0.7078 0.6967 0.6789 0.6649 0.6641 0.6796 0.7072 0.7361 0.7538 0.7524 0.7335 0.7085 0.6933 0.6994 0.7255 0.7558 0.7693 0.7554 0.7281 0.7195 0.7508 0.7982 0.8070 0.7871 0.8752 1.0146 - 0.3263 0.4091 0.4750 0.5192 0.5411 0.5461 0.5437 0.5446 0.5562 0.5809 0.6152 0.6511 0.6794 0.6932 0.6908 0.6768 0.6603 0.6517 0.6578 0.6791 0.7088 0.7353 0.7477 0.7411 0.7202 0.6977 0.6886 0.7008 0.7293 0.7568 0.7641 0.7462 0.7209 0.7196 0.7562 0.8014 0.8045 0.7879 0.8826 1.0154 - 0.3310 0.4077 0.4632 0.4964 0.5104 0.5133 0.5152 0.5247 0.5463 0.5787 0.6158 0.6488 0.6700 0.6755 0.6672 0.6520 0.6397 0.6389 0.6534 0.6802 0.7101 0.7319 0.7372 0.7251 0.7035 0.6861 0.6853 0.7044 0.7341 0.7563 0.7559 0.7344 0.7135 0.7213 0.7633 0.8041 0.8010 0.7899 0.8922 1.0164 - 0.3321 0.3978 0.4403 0.4629 0.4724 0.4781 0.4889 0.5101 0.5418 0.5793 0.6149 0.6409 0.6524 0.6495 0.6374 0.6247 0.6204 0.6299 0.6528 0.6827 0.7095 0.7235 0.7205 0.7041 0.6849 0.6759 0.6851 0.7104 0.7387 0.7530 0.7442 0.7208 0.7071 0.7256 0.7714 0.8055 0.7963 0.7938 0.9038 1.0177 - 0.3233 0.3747 0.4050 0.4215 0.4329 0.4477 0.4711 0.5040 0.5424 0.5795 0.6081 0.6233 0.6244 0.6157 0.6046 0.5996 0.6067 0.6270 0.6559 0.6846 0.7038 0.7077 0.6971 0.6797 0.6672 0.6695 0.6890 0.7179 0.7412 0.7454 0.7290 0.7070 0.7036 0.7330 0.7796 0.8044 0.7909 0.8005 0.9170 1.0194 - 0.2996 0.3379 0.3616 0.3800 0.4010 0.4292 0.4652 0.5054 0.5435 0.5730 0.5897 0.5931 0.5870 0.5784 0.5749 0.5822 0.6019 0.6302 0.6597 0.6815 0.6896 0.6834 0.6687 0.6556 0.6542 0.6692 0.6966 0.7244 0.7387 0.7322 0.7114 0.6956 0.7052 0.7434 0.7864 0.8001 0.7856 0.8110 0.9313 1.0216 - 0.2625 0.2946 0.3210 0.3498 0.3847 0.4255 0.4682 0.5070 0.5363 0.5528 0.5568 0.5524 0.5464 0.5457 0.5553 0.5763 0.6053 0.6352 0.6582 0.6684 0.6650 0.6525 0.6401 0.6372 0.6495 0.6752 0.7050 0.7259 0.7285 0.7135 0.6942 0.6900 0.7132 0.7558 0.7901 0.7927 0.7824 0.8258 0.9460 1.0243 - 0.2230 0.2589 0.2963 0.3387 0.3849 0.4304 0.4695 0.4976 0.5127 0.5164 0.5133 0.5101 0.5131 0.5263 0.5500 0.5803 0.6107 0.6339 0.6448 0.6428 0.6322 0.6212 0.6186 0.6298 0.6541 0.6843 0.7089 0.7180 0.7097 0.6921 0.6816 0.6928 0.7270 0.7676 0.7891 0.7833 0.7834 0.8455 0.9603 1.0279 - 0.1963 0.2432 0.2928 0.3437 0.3910 0.4296 0.4558 0.4691 0.4724 0.4710 0.4714 0.4791 0.4967 0.5236 0.5554 0.5856 0.6079 0.6182 0.6167 0.6079 0.5993 0.5985 0.6105 0.6345 0.6643 0.6899 0.7026 0.6991 0.6851 0.6736 0.6783 0.7048 0.7439 0.7753 0.7827 0.7747 0.7912 0.8694 0.9731 1.0323 - 0.1918 0.2479 0.3018 0.3493 0.3860 0.4097 0.4215 0.4253 0.4269 0.4323 0.4457 0.4684 0.4983 0.5307 0.5596 0.5796 0.5881 0.5865 0.5795 0.5742 0.5770 0.5916 0.6166 0.6461 0.6713 0.6846 0.6834 0.6723 0.6621 0.6648 0.6868 0.7231 0.7583 0.7757 0.7724 0.7708 0.8078 0.8961 0.9838 1.0378 - 0.2026 0.2580 0.3038 0.3376 0.3589 0.3702 0.3762 0.3827 0.3946 0.4146 0.4423 0.4745 0.5063 0.5323 0.5487 0.5546 0.5525 0.5477 0.5466 0.5544 0.5729 0.6000 0.6293 0.6532 0.6655 0.6647 0.6553 0.6469 0.6500 0.6703 0.7048 0.7411 0.7644 0.7678 0.7625 0.7762 0.8334 0.9233 0.9919 1.0445 - 0.2094 0.2532 0.2841 0.3041 0.3168 0.3273 0.3406 0.3601 0.3867 0.4185 0.4516 0.4811 0.5028 0.5148 0.5180 0.5159 0.5142 0.5183 0.5317 0.5547 0.5838 0.6127 0.6346 0.6449 0.6436 0.6355 0.6295 0.6345 0.6550 0.6885 0.7246 0.7507 0.7592 0.7557 0.7597 0.7944 0.8661 0.9479 0.9978 1.0526 - 0.1964 0.2264 0.2471 0.2637 0.2809 0.3025 0.3299 0.3622 0.3962 0.4279 0.4533 0.4698 0.4775 0.4789 0.4785 0.4814 0.4916 0.5110 0.5379 0.5679 0.5951 0.6138 0.6215 0.6194 0.6132 0.6107 0.6191 0.6416 0.6747 0.7098 0.7361 0.7471 0.7463 0.7479 0.7708 0.8257 0.9015 0.9674 1.0027 1.0620 - 0.1666 0.1912 0.2140 0.2394 0.2694 0.3036 0.3395 0.3734 0.4015 0.4214 0.4328 0.4373 0.4389 0.4421 0.4511 0.4682 0.4932 0.5227 0.5520 0.5757 0.5901 0.5946 0.5921 0.5885 0.5910 0.6045 0.6301 0.6637 0.6971 0.7216 0.7327 0.7336 0.7359 0.7546 0.7993 0.8658 0.9338 0.9807 1.0084 1.0729 - 0.1394 0.1701 0.2037 0.2408 0.2795 0.3163 0.3475 0.3707 0.3851 0.3924 0.3960 0.4001 0.4089 0.4251 0.4488 0.4779 0.5082 0.5349 0.5538 0.5633 0.5648 0.5628 0.5632 0.5715 0.5910 0.6203 0.6543 0.6855 0.7072 0.7168 0.7186 0.7228 0.7414 0.7819 0.8416 0.9063 0.9579 0.9891 1.0174 1.0850 - 0.1322 0.1729 0.2145 0.2546 0.2896 0.3167 0.3348 0.3452 0.3510 0.3563 0.3654 0.3810 0.4040 0.4327 0.4636 0.4922 0.5144 0.5279 0.5332 0.5334 0.5336 0.5394 0.5545 0.5797 0.6120 0.6456 0.6736 0.6916 0.6992 0.7018 0.7089 0.7300 0.7703 0.8266 0.8873 0.9385 0.9725 0.9967 1.0320 1.0981 - 0.1435 0.1872 0.2261 0.2576 0.2802 0.2947 0.3037 0.3112 0.3212 0.3368 0.3593 0.3875 0.4184 0.4481 0.4725 0.4892 0.4978 0.5006 0.5019 0.5067 0.5193 0.5412 0.5712 0.6048 0.6362 0.6599 0.6737 0.6796 0.6840 0.6953 0.7209 0.7634 0.8183 0.8755 0.9239 0.9578 0.9816 1.0090 1.0534 1.1120 - 0.1553 0.1920 0.2198 0.2393 0.2527 0.2635 0.2756 0.2922 0.3147 0.3426 0.3734 0.4036 0.4294 0.4482 0.4593 0.4645 0.4674 0.4725 0.4839 0.5038 0.5318 0.5647 0.5974 0.6248 0.6434 0.6535 0.6588 0.6664 0.6835 0.7150 0.7608 0.8151 0.8688 0.9132 0.9449 0.9683 0.9939 1.0312 1.0813 1.1262 - 0.1518 0.1778 0.1965 0.2116 0.2269 0.2455 0.2690 0.2974 0.3284 0.3590 0.3858 0.4061 0.4192 0.4264 0.4308 0.4365 0.4475 0.4662 0.4928 0.5249 0.5581 0.5877 0.6098 0.6236 0.6313 0.6382 0.6511 0.6754 0.7133 0.7622 0.8156 0.8652 0.9047 0.9332 0.9559 0.9818 1.0180 1.0646 1.1131 1.1403 - 0.1337 0.1546 0.1737 0.1949 0.2203 0.2499 0.2821 0.3137 0.3417 0.3636 0.3785 0.3874 0.3931 0.3994 0.4103 0.4282 0.4537 0.4850 0.5184 0.5493 0.5739 0.5907 0.6009 0.6086 0.6197 0.6397 0.6719 0.7158 0.7669 0.8180 0.8625 0.8966 0.9220 0.9446 0.9724 1.0102 1.0570 1.1052 1.1446 1.1538 - 0.1150 0.1398 0.1672 0.1984 0.2322 0.2659 0.2961 0.3203 0.3373 0.3480 0.3549 0.3618 0.3724 0.3895 0.4141 0.4447 0.4780 0.5099 0.5366 0.5558 0.5682 0.5770 0.5875 0.6050 0.6333 0.6731 0.7214 0.7724 0.8197 0.8583 0.8875 0.9110 0.9352 0.9666 1.0080 1.0563 1.1042 1.1439 1.1708 1.1663 - 0.1089 0.1419 0.1773 0.2133 0.2467 0.2745 0.2949 0.3083 0.3169 0.3243 0.3344 0.3504 0.3736 0.4032 0.4364 0.4693 0.4978 0.5195 0.5341 0.5443 0.5546 0.5702 0.5954 0.6317 0.6774 0.7276 0.7764 0.8183 0.8512 0.8767 0.9003 0.9283 0.9653 1.0112 1.0611 1.1076 1.1445 1.1702 1.1874 1.1773 - 0.1166 0.1550 0.1916 0.2238 0.2490 0.2667 0.2784 0.2871 0.2970 0.3116 0.3328 0.3608 0.3933 0.4268 0.4571 0.4814 0.4986 0.5106 0.5211 0.5353 0.5577 0.5906 0.6334 0.6825 0.7321 0.7766 0.8128 0.8409 0.8649 0.8910 0.9247 0.9680 1.0182 1.0686 1.1117 1.1430 1.1632 1.1776 1.1926 1.1867 - 0.1292 0.1663 0.1972 0.2207 0.2372 0.2489 0.2596 0.2731 0.2922 0.3180 0.3492 0.3826 0.4144 0.4413 0.4615 0.4757 0.4870 0.5001 0.5197 0.5490 0.5886 0.6358 0.6857 0.7325 0.7721 0.8032 0.8286 0.8537 0.8845 0.9246 0.9735 1.0258 1.0739 1.1111 1.1348 1.1479 1.1568 1.1680 1.1876 1.1943 - 0.1369 0.1678 0.1908 0.2073 0.2204 0.2340 0.2514 0.2747 0.3039 0.3368 0.3698 0.3993 0.4228 0.4399 0.4526 0.4648 0.4816 0.5068 0.5422 0.5866 0.6359 0.6847 0.7278 0.7628 0.7906 0.8158 0.8442 0.8809 0.9271 0.9795 1.0308 1.0732 1.1018 1.1169 1.1241 1.1300 1.1390 1.1526 1.1767 1.2001 - 0.1356 0.1598 0.1777 0.1930 0.2095 0.2305 0.2572 0.2887 0.3224 0.3546 0.3819 0.4028 0.4180 0.4303 0.4445 0.4650 0.4951 0.5351 0.5824 0.6321 0.6786 0.7180 0.7494 0.7758 0.8026 0.8357 0.8785 0.9296 0.9832 1.0308 1.0652 1.0842 1.0920 1.0966 1.1053 1.1201 1.1361 1.1477 1.1657 1.2043 - 0.1277 0.1483 0.1660 0.1853 0.2090 0.2382 0.2714 0.3055 0.3370 0.3629 0.3823 0.3965 0.4092 0.4253 0.4490 0.4827 0.5257 0.5744 0.6236 0.6679 0.7043 0.7335 0.7596 0.7888 0.8264 0.8741 0.9285 0.9816 1.0243 1.0508 1.0621 1.0659 1.0734 1.0923 1.1221 1.1533 1.1714 1.1666 1.1600 1.2070 - 0.1182 0.1389 0.1604 0.1861 0.2169 0.2513 0.2861 0.3176 0.3430 0.3619 0.3759 0.3891 0.4063 0.4319 0.4675 0.5122 0.5617 0.6104 0.6533 0.6881 0.7161 0.7424 0.7734 0.8141 0.8650 0.9210 0.9730 1.0116 1.0323 1.0390 1.0432 1.0588 1.0939 1.1456 1.2002 1.2401 1.2486 1.2132 1.1631 1.2085 - 0.1108 0.1344 0.1611 0.1927 0.2280 0.2638 0.2962 0.3226 0.3419 0.3563 0.3696 0.3870 0.4126 0.4486 0.4936 0.5434 0.5923 0.6352 0.6698 0.6977 0.7241 0.7558 0.7976 0.8497 0.9064 0.9578 0.9943 1.0121 1.0171 1.0238 1.0488 1.1014 1.1763 1.2551 1.3178 1.3517 1.3460 1.2792 1.1752 1.2092 - 0.1069 0.1343 0.1658 0.2013 0.2382 0.2726 0.3011 0.3224 0.3378 0.3511 0.3675 0.3915 0.4257 0.4694 0.5190 0.5687 0.6131 0.6492 0.6781 0.7046 0.7356 0.7763 0.8278 0.8846 0.9369 0.9743 0.9925 0.9974 1.0051 1.0352 1.0997 1.1928 1.2913 1.3684 1.4129 1.4336 1.4282 1.3491 1.1939 1.2093 - 0.1059 0.1367 0.1715 0.2090 0.2455 0.2774 0.3021 0.3199 0.3339 0.3487 0.3695 0.3999 0.4405 0.4887 0.5391 0.5859 0.6252 0.6564 0.6834 0.7127 0.7505 0.7993 0.8555 0.9101 0.9519 0.9744 0.9809 0.9867 1.0136 1.0783 1.1794 1.2923 1.3802 1.4203 1.4278 1.4432 1.4678 1.4076 1.2149 1.2091 - 0.1064 0.1397 0.1764 0.2145 0.2499 0.2794 0.3014 0.3175 0.3314 0.3486 0.3735 0.4087 0.4532 0.5030 0.5524 0.5961 0.6315 0.6604 0.6881 0.7214 0.7651 0.8187 0.8753 0.9242 0.9557 0.9679 0.9716 0.9877 1.0386 1.1328 1.2531 1.3584 1.4065 1.3899 1.3580 1.3836 1.4635 1.4467 1.2336 1.2088 - 0.1072 0.1419 0.1796 0.2176 0.2521 0.2800 0.3005 0.3159 0.3304 0.3494 0.3771 0.4150 0.4614 0.5116 0.5598 0.6012 0.6346 0.6627 0.6917 0.7281 0.7754 0.8309 0.8864 0.9303 0.9550 0.9625 0.9679 0.9949 1.0636 1.1742 1.2978 1.3830 1.3879 1.3216 1.2620 1.3051 1.4396 1.4671 1.2464 1.2086 - 0.1076 0.1427 0.1806 0.2186 0.2528 0.2801 0.3002 0.3153 0.3301 0.3498 0.3784 0.4173 0.4642 0.5144 0.5621 0.6027 0.6355 0.6635 0.6931 0.7307 0.7790 0.8351 0.8898 0.9319 0.9543 0.9606 0.9673 0.9987 1.0736 1.1892 1.3116 1.3867 1.3732 1.2873 1.2180 1.2697 1.4270 1.4730 1.2509 1.2085 - 0.3203 0.3997 0.4605 0.4991 0.5163 0.5186 0.5165 0.5203 0.5363 0.5653 0.6019 0.6371 0.6618 0.6704 0.6632 0.6470 0.6320 0.6282 0.6409 0.6676 0.6991 0.7230 0.7296 0.7173 0.6943 0.6755 0.6746 0.6950 0.7261 0.7482 0.7458 0.7223 0.7033 0.7178 0.7654 0.8028 0.7920 0.7926 0.9174 1.0249 - 0.3208 0.3996 0.4593 0.4967 0.5130 0.5151 0.5136 0.5183 0.5355 0.5652 0.6021 0.6369 0.6607 0.6683 0.6606 0.6443 0.6299 0.6271 0.6407 0.6679 0.6993 0.7225 0.7283 0.7154 0.6925 0.6745 0.6745 0.6956 0.7268 0.7481 0.7447 0.7209 0.7026 0.7182 0.7661 0.8029 0.7916 0.7932 0.9184 1.0252 - 0.3223 0.3989 0.4553 0.4892 0.5031 0.5049 0.5051 0.5129 0.5333 0.5653 0.6025 0.6359 0.6571 0.6620 0.6526 0.6365 0.6240 0.6242 0.6404 0.6690 0.6998 0.7208 0.7240 0.7095 0.6871 0.6715 0.6746 0.6977 0.7285 0.7474 0.7414 0.7170 0.7008 0.7194 0.7683 0.8029 0.7905 0.7951 0.9215 1.0259 - 0.3241 0.3966 0.4471 0.4757 0.4866 0.4887 0.4924 0.5054 0.5308 0.5657 0.6029 0.6334 0.6501 0.6508 0.6393 0.6241 0.6153 0.6203 0.6406 0.6706 0.6999 0.7171 0.7163 0.6999 0.6788 0.6673 0.6753 0.7011 0.7308 0.7457 0.7357 0.7108 0.6985 0.7219 0.7717 0.8027 0.7885 0.7984 0.9265 1.0270 - 0.3247 0.3904 0.4330 0.4553 0.4639 0.4683 0.4778 0.4980 0.5293 0.5667 0.6023 0.6277 0.6383 0.6342 0.6212 0.6086 0.6055 0.6169 0.6418 0.6726 0.6986 0.7103 0.7045 0.6865 0.6684 0.6632 0.6774 0.7058 0.7331 0.7421 0.7274 0.7031 0.6966 0.7261 0.7760 0.8016 0.7859 0.8036 0.9333 1.0288 - 0.3213 0.3775 0.4113 0.4283 0.4370 0.4467 0.4646 0.4932 0.5297 0.5675 0.5986 0.6168 0.6202 0.6118 0.5995 0.5921 0.5969 0.6157 0.6444 0.6741 0.6945 0.6991 0.6883 0.6702 0.6575 0.6605 0.6814 0.7113 0.7340 0.7356 0.7165 0.6948 0.6964 0.7324 0.7806 0.7990 0.7829 0.8110 0.9414 1.0311 - 0.3104 0.3557 0.3816 0.3966 0.4097 0.4283 0.4563 0.4924 0.5313 0.5658 0.5892 0.5984 0.5950 0.5850 0.5766 0.5777 0.5919 0.6175 0.6478 0.6731 0.6855 0.6823 0.6679 0.6527 0.6480 0.6606 0.6874 0.7164 0.7320 0.7256 0.7037 0.6875 0.6990 0.7406 0.7844 0.7944 0.7801 0.8212 0.9505 1.0341 - 0.2892 0.3249 0.3471 0.3654 0.3875 0.4173 0.4545 0.4947 0.5312 0.5577 0.5708 0.5713 0.5640 0.5566 0.5566 0.5684 0.5920 0.6218 0.6496 0.6671 0.6699 0.6599 0.6452 0.6365 0.6424 0.6643 0.6945 0.7190 0.7255 0.7119 0.6905 0.6832 0.7055 0.7502 0.7863 0.7877 0.7786 0.8344 0.9601 1.0379 - 0.2585 0.2893 0.3142 0.3416 0.3755 0.4155 0.4577 0.4957 0.5239 0.5391 0.5420 0.5371 0.5314 0.5320 0.5436 0.5665 0.5963 0.6255 0.6461 0.6532 0.6471 0.6340 0.6236 0.6252 0.6424 0.6711 0.7002 0.7165 0.7132 0.6952 0.6792 0.6839 0.7160 0.7597 0.7851 0.7795 0.7801 0.8511 0.9695 1.0426 - 0.2245 0.2576 0.2916 0.3309 0.3750 0.4198 0.4593 0.4884 0.5045 0.5087 0.5055 0.5017 0.5040 0.5167 0.5402 0.5706 0.6008 0.6234 0.6333 0.6302 0.6192 0.6088 0.6080 0.6217 0.6482 0.6785 0.7010 0.7065 0.6952 0.6782 0.6726 0.6910 0.7297 0.7672 0.7801 0.7715 0.7862 0.8709 0.9781 1.0482 - 0.1974 0.2392 0.2846 0.3331 0.3806 0.4214 0.4508 0.4670 0.4718 0.4701 0.4687 0.4735 0.4885 0.5135 0.5446 0.5754 0.5989 0.6103 0.6094 0.6005 0.5914 0.5903 0.6024 0.6269 0.6569 0.6821 0.6934 0.6883 0.6740 0.6646 0.6736 0.7042 0.7438 0.7706 0.7719 0.7661 0.7987 0.8931 0.9854 1.0550 - 0.1861 0.2379 0.2905 0.3400 0.3811 0.4101 0.4260 0.4315 0.4318 0.4335 0.4419 0.4600 0.4871 0.5190 0.5496 0.5726 0.5841 0.5843 0.5775 0.5706 0.5712 0.5837 0.6076 0.6370 0.6629 0.6769 0.6759 0.6647 0.6548 0.6590 0.6832 0.7209 0.7547 0.7680 0.7624 0.7666 0.8184 0.9161 0.9911 1.0629 - 0.1911 0.2472 0.2975 0.3380 0.3659 0.3814 0.3880 0.3912 0.3971 0.4102 0.4323 0.4618 0.4942 0.5237 0.5450 0.5553 0.5555 0.5503 0.5463 0.5498 0.5645 0.5894 0.6188 0.6446 0.6594 0.6603 0.6513 0.6421 0.6442 0.6644 0.6995 0.7362 0.7583 0.7597 0.7551 0.7761 0.8448 0.9380 0.9954 1.0721 - 0.2018 0.2525 0.2915 0.3180 0.3335 0.3421 0.3494 0.3607 0.3794 0.4060 0.4378 0.4701 0.4975 0.5160 0.5242 0.5239 0.5202 0.5194 0.5267 0.5446 0.5713 0.6012 0.6266 0.6412 0.6428 0.6352 0.6271 0.6289 0.6469 0.6798 0.7171 0.7445 0.7531 0.7491 0.7551 0.7964 0.8755 0.9566 0.9991 1.0824 - 0.2029 0.2410 0.2666 0.2831 0.2951 0.3080 0.3258 0.3505 0.3812 0.4145 0.4456 0.4700 0.4851 0.4909 0.4904 0.4888 0.4917 0.5034 0.5249 0.5534 0.5833 0.6076 0.6212 0.6229 0.6166 0.6105 0.6134 0.6312 0.6626 0.6991 0.7285 0.7419 0.7414 0.7425 0.7671 0.8268 0.9068 0.9704 1.0036 1.0938 - 0.1860 0.2127 0.2318 0.2489 0.2685 0.2934 0.3239 0.3578 0.3911 0.4197 0.4402 0.4516 0.4554 0.4555 0.4571 0.4649 0.4815 0.5065 0.5364 0.5652 0.5872 0.5986 0.5997 0.5949 0.5917 0.5976 0.6170 0.6482 0.6836 0.7128 0.7282 0.7305 0.7310 0.7477 0.7932 0.8634 0.9341 0.9794 1.0107 1.1061 - 0.1577 0.1817 0.2051 0.2321 0.2638 0.2991 0.3347 0.3667 0.3915 0.4076 0.4155 0.4183 0.4204 0.4264 0.4399 0.4617 0.4899 0.5201 0.5468 0.5654 0.5738 0.5738 0.5705 0.5709 0.5811 0.6036 0.6358 0.6703 0.6983 0.7135 0.7171 0.7184 0.7321 0.7698 0.8310 0.9000 0.9540 0.9855 1.0224 1.1190 - 0.1344 0.1652 0.1991 0.2364 0.2748 0.3105 0.3397 0.3603 0.3723 0.3779 0.3811 0.3866 0.3980 0.4173 0.4438 0.4742 0.5036 0.5272 0.5417 0.5470 0.5463 0.5451 0.5497 0.5648 0.5909 0.6244 0.6581 0.6841 0.6982 0.7021 0.7047 0.7182 0.7525 0.8079 0.8730 0.9295 0.9662 0.9927 1.0400 1.1322 - 0.1289 0.1688 0.2098 0.2492 0.2832 0.3090 0.3258 0.3350 0.3403 0.3459 0.3560 0.3732 0.3978 0.4275 0.4583 0.4854 0.5049 0.5155 0.5185 0.5181 0.5202 0.5299 0.5500 0.5796 0.6138 0.6457 0.6691 0.6813 0.6854 0.6899 0.7053 0.7393 0.7918 0.8533 0.9090 0.9483 0.9743 1.0058 1.0640 1.1452 - 0.1391 0.1821 0.2206 0.2519 0.2743 0.2885 0.2971 0.3042 0.3140 0.3298 0.3526 0.3810 0.4120 0.4411 0.4643 0.4793 0.4864 0.4885 0.4903 0.4971 0.5126 0.5377 0.5699 0.6037 0.6328 0.6527 0.6627 0.6671 0.6743 0.6932 0.7292 0.7809 0.8397 0.8932 0.9325 0.9588 0.9853 1.0285 1.0930 1.1577 - 0.1508 0.1880 0.2165 0.2364 0.2497 0.2599 0.2709 0.2864 0.3080 0.3353 0.3659 0.3960 0.4216 0.4401 0.4508 0.4556 0.4583 0.4639 0.4765 0.4980 0.5276 0.5612 0.5933 0.6187 0.6346 0.6426 0.6481 0.6590 0.6825 0.7219 0.7741 0.8307 0.8811 0.9185 0.9446 0.9697 1.0067 1.0614 1.1238 1.1690 - 0.1505 0.1777 0.1968 0.2112 0.2248 0.2412 0.2626 0.2894 0.3198 0.3506 0.3780 0.3993 0.4131 0.4205 0.4246 0.4299 0.4404 0.4591 0.4860 0.5185 0.5519 0.5811 0.6022 0.6147 0.6218 0.6296 0.6454 0.6744 0.7177 0.7706 0.8247 0.8713 0.9059 0.9310 0.9560 0.9914 1.0418 1.1004 1.1521 1.1789 - 0.1364 0.1571 0.1744 0.1927 0.2148 0.2417 0.2724 0.3041 0.3334 0.3573 0.3741 0.3841 0.3899 0.3953 0.4045 0.4207 0.4450 0.4758 0.5094 0.5409 0.5661 0.5830 0.5930 0.6007 0.6124 0.6342 0.6693 0.7162 0.7693 0.8205 0.8627 0.8939 0.9179 0.9437 0.9800 1.0295 1.0860 1.1373 1.1733 1.1871 - 0.1180 0.1398 0.1633 0.1908 0.2221 0.2552 0.2868 0.3137 0.3337 0.3467 0.3544 0.3604 0.3686 0.3827 0.4045 0.4334 0.4664 0.4993 0.5275 0.5483 0.5617 0.5705 0.5804 0.5974 0.6258 0.6665 0.7164 0.7687 0.8162 0.8538 0.8818 0.9055 0.9333 0.9721 1.0226 1.0780 1.1273 1.1624 1.1840 1.1932 - 0.1071 0.1357 0.1676 0.2021 0.2364 0.2671 0.2913 0.3081 0.3186 0.3255 0.3331 0.3451 0.3641 0.3905 0.4225 0.4561 0.4869 0.5115 0.5284 0.5394 0.5488 0.5623 0.5851 0.6199 0.6653 0.7166 0.7669 0.8101 0.8434 0.8692 0.8938 0.9250 0.9676 1.0200 1.0743 1.1204 1.1516 1.1696 1.1836 1.1974 - 0.1084 0.1439 0.1804 0.2150 0.2445 0.2667 0.2815 0.2909 0.2985 0.3086 0.3245 0.3478 0.3776 0.4109 0.4437 0.4718 0.4928 0.5069 0.5171 0.5286 0.5468 0.5756 0.6157 0.6643 0.7155 0.7627 0.8015 0.8311 0.8558 0.8827 0.9184 0.9654 1.0199 1.0728 1.1142 1.1395 1.1518 1.1602 1.1745 1.1996 - 0.1182 0.1562 0.1908 0.2194 0.2404 0.2544 0.2642 0.2736 0.2867 0.3063 0.3328 0.3645 0.3980 0.4290 0.4541 0.4722 0.4847 0.4956 0.5103 0.5334 0.5676 0.6119 0.6620 0.7119 0.7556 0.7903 0.8174 0.8424 0.8724 0.9128 0.9639 1.0196 1.0698 1.1058 1.1245 1.1313 1.1356 1.1444 1.1621 1.2002 - 0.1287 0.1640 0.1923 0.2131 0.2274 0.2385 0.2502 0.2664 0.2890 0.3178 0.3505 0.3833 0.4123 0.4349 0.4509 0.4628 0.4751 0.4932 0.5208 0.5593 0.6064 0.6569 0.7049 0.7454 0.7771 0.8030 0.8294 0.8632 0.9079 0.9616 1.0167 1.0629 1.0926 1.1054 1.1087 1.1132 1.1243 1.1385 1.1532 1.1994 - 0.1342 0.1637 0.1853 0.2008 0.2136 0.2276 0.2463 0.2713 0.3017 0.3349 0.3670 0.3943 0.4151 0.4298 0.4417 0.4557 0.4766 0.5077 0.5492 0.5978 0.6480 0.6939 0.7318 0.7617 0.7877 0.8165 0.8540 0.9024 0.9576 1.0107 1.0517 1.0749 1.0828 1.0856 1.0953 1.1170 1.1433 1.1574 1.1538 1.1976 - 0.1331 0.1570 0.1744 0.1891 0.2051 0.2257 0.2522 0.2837 0.3173 0.3489 0.3754 0.3952 0.4094 0.4217 0.4369 0.4598 0.4931 0.5363 0.5855 0.6350 0.6794 0.7154 0.7443 0.7709 0.8020 0.8429 0.8941 0.9502 1.0012 1.0375 1.0551 1.0598 1.0646 1.0833 1.1210 1.1689 1.2060 1.2072 1.1674 1.1952 - 0.1274 0.1479 0.1647 0.1822 0.2039 0.2313 0.2635 0.2974 0.3292 0.3557 0.3755 0.3898 0.4023 0.4181 0.4419 0.4760 0.5198 0.5692 0.6183 0.6618 0.6970 0.7254 0.7523 0.7847 0.8276 0.8807 0.9376 0.9877 1.0213 1.0357 1.0389 1.0469 1.0756 1.1305 1.2011 1.2662 1.3016 1.2810 1.1934 1.1925 - 0.1203 0.1399 0.1587 0.1808 0.2083 0.2407 0.2752 0.3079 0.3354 0.3560 0.3709 0.3835 0.3990 0.4221 0.4556 0.4989 0.5483 0.5978 0.6417 0.6772 0.7056 0.7322 0.7643 0.8071 0.8607 0.9186 0.9695 1.0034 1.0174 1.0204 1.0308 1.0672 1.1361 1.2255 1.3110 1.3720 1.3975 1.3615 1.2283 1.1899 - 0.1140 0.1345 0.1566 0.1834 0.2153 0.2502 0.2843 0.3139 0.3366 0.3529 0.3657 0.3799 0.4009 0.4319 0.4734 0.5221 0.5724 0.6182 0.6556 0.6851 0.7112 0.7414 0.7819 0.8340 0.8924 0.9460 0.9835 1.0002 1.0038 1.0135 1.0511 1.1273 1.2301 1.3292 1.3973 1.4343 1.4559 1.4289 1.2662 1.1875 - 0.1096 0.1318 0.1571 0.1875 0.2222 0.2577 0.2902 0.3164 0.3354 0.3491 0.3621 0.3796 0.4062 0.4438 0.4905 0.5413 0.5898 0.6309 0.6632 0.6898 0.7174 0.7533 0.8014 0.8588 0.9158 0.9600 0.9835 0.9895 0.9953 1.0253 1.0972 1.2059 1.3187 1.3934 1.4152 1.4204 1.4567 1.4706 1.3012 1.1856 - 0.1069 0.1309 0.1587 0.1915 0.2275 0.2628 0.2934 0.3169 0.3335 0.3463 0.3604 0.3812 0.4124 0.4543 0.5037 0.5546 0.6007 0.6381 0.6673 0.6934 0.7239 0.7651 0.8182 0.8770 0.9295 0.9643 0.9779 0.9808 0.9964 1.0497 1.1495 1.2733 1.3717 1.3995 1.3639 1.3426 1.4113 1.4868 1.3287 1.1842 - 0.1056 0.1308 0.1601 0.1942 0.2307 0.2655 0.2948 0.3167 0.3320 0.3446 0.3599 0.3831 0.4171 0.4614 0.5119 0.5622 0.6065 0.6417 0.6695 0.6960 0.7289 0.7735 0.8291 0.8874 0.9359 0.9643 0.9728 0.9767 1.0021 1.0724 1.1878 1.3133 1.3891 1.3724 1.2910 1.2544 1.3567 1.4879 1.3460 1.1833 - 0.1052 0.1308 0.1607 0.1952 0.2318 0.2664 0.2952 0.3166 0.3315 0.3442 0.3599 0.3838 0.4188 0.4638 0.5146 0.5647 0.6083 0.6427 0.6702 0.6970 0.7308 0.7766 0.8328 0.8908 0.9377 0.9639 0.9710 0.9757 1.0051 1.0814 1.2015 1.3257 1.3911 1.3563 1.2575 1.2163 1.3328 1.4865 1.3519 1.1830 - 0.3164 0.3753 0.4114 0.4294 0.4371 0.4442 0.4586 0.4838 0.5180 0.5551 0.5868 0.6064 0.6114 0.6043 0.5924 0.5847 0.5885 0.6062 0.6337 0.6623 0.6821 0.6866 0.6766 0.6601 0.6495 0.6544 0.6759 0.7042 0.7235 0.7222 0.7032 0.6862 0.6949 0.7341 0.7770 0.7876 0.7782 0.8309 0.9589 1.0607 - 0.3160 0.3739 0.4091 0.4266 0.4344 0.4420 0.4573 0.4834 0.5182 0.5552 0.5864 0.6052 0.6094 0.6019 0.5901 0.5831 0.5878 0.6062 0.6340 0.6624 0.6816 0.6853 0.6748 0.6585 0.6485 0.6543 0.6763 0.7047 0.7235 0.7215 0.7022 0.6856 0.6950 0.7347 0.7773 0.7872 0.7782 0.8320 0.9596 1.0611 - 0.3145 0.3694 0.4020 0.4181 0.4263 0.4360 0.4540 0.4826 0.5187 0.5554 0.5848 0.6013 0.6033 0.5948 0.5837 0.5786 0.5859 0.6064 0.6351 0.6627 0.6798 0.6813 0.6696 0.6537 0.6457 0.6540 0.6779 0.7062 0.7233 0.7191 0.6991 0.6838 0.6956 0.7365 0.7778 0.7860 0.7783 0.8352 0.9615 1.0623 - 0.3108 0.3609 0.3896 0.4043 0.4139 0.4272 0.4498 0.4820 0.5195 0.5551 0.5814 0.5938 0.5927 0.5832 0.5737 0.5722 0.5836 0.6073 0.6367 0.6624 0.6760 0.6741 0.6608 0.6462 0.6418 0.6542 0.6805 0.7082 0.7222 0.7149 0.6941 0.6814 0.6972 0.7396 0.7786 0.7840 0.7785 0.8406 0.9645 1.0643 - 0.3034 0.3472 0.3718 0.3860 0.3988 0.4178 0.4462 0.4823 0.5205 0.5534 0.5746 0.5818 0.5773 0.5677 0.5614 0.5653 0.5822 0.6091 0.6384 0.6607 0.6693 0.6633 0.6489 0.6370 0.6379 0.6555 0.6841 0.7101 0.7195 0.7082 0.6875 0.6793 0.7004 0.7441 0.7790 0.7808 0.7791 0.8482 0.9684 1.0672 - 0.2906 0.3276 0.3492 0.3652 0.3838 0.4101 0.4448 0.4839 0.5206 0.5483 0.5628 0.5642 0.5573 0.5496 0.5488 0.5599 0.5827 0.6120 0.6393 0.6562 0.6586 0.6486 0.6346 0.6275 0.6354 0.6586 0.6884 0.7106 0.7141 0.6991 0.6801 0.6785 0.7058 0.7497 0.7786 0.7764 0.7808 0.8581 0.9729 1.0709 - 0.2711 0.3026 0.3242 0.3452 0.3719 0.4065 0.4463 0.4855 0.5176 0.5377 0.5444 0.5410 0.5340 0.5311 0.5383 0.5575 0.5855 0.6150 0.6377 0.6473 0.6431 0.6306 0.6195 0.6195 0.6354 0.6633 0.6921 0.7085 0.7053 0.6878 0.6732 0.6802 0.7137 0.7555 0.7766 0.7713 0.7842 0.8703 0.9775 1.0756 - 0.2457 0.2752 0.3007 0.3301 0.3662 0.4076 0.4491 0.4845 0.5085 0.5194 0.5193 0.5138 0.5105 0.5157 0.5324 0.5590 0.5895 0.6158 0.6311 0.6326 0.6232 0.6111 0.6061 0.6152 0.6387 0.6689 0.6936 0.7020 0.6925 0.6754 0.6685 0.6857 0.7238 0.7606 0.7726 0.7661 0.7905 0.8845 0.9821 1.0811 - 0.2183 0.2505 0.2841 0.3233 0.3673 0.4114 0.4495 0.4766 0.4905 0.4930 0.4892 0.4864 0.4910 0.5065 0.5322 0.5632 0.5920 0.6114 0.6175 0.6118 0.6007 0.5932 0.5974 0.6161 0.6448 0.6734 0.6905 0.6901 0.6766 0.6639 0.6678 0.6951 0.7348 0.7635 0.7664 0.7624 0.8007 0.9005 0.9863 1.0876 - 0.1952 0.2347 0.2780 0.3252 0.3721 0.4127 0.4422 0.4583 0.4629 0.4609 0.4592 0.4642 0.4796 0.5051 0.5364 0.5666 0.5887 0.5985 0.5961 0.5869 0.5791 0.5807 0.5957 0.6221 0.6517 0.6739 0.6809 0.6730 0.6597 0.6560 0.6727 0.7079 0.7449 0.7629 0.7590 0.7623 0.8159 0.9174 0.9900 1.0950 - 0.1827 0.2312 0.2819 0.3313 0.3739 0.4050 0.4228 0.4292 0.4292 0.4294 0.4359 0.4523 0.4782 0.5098 0.5405 0.5640 0.5758 0.5761 0.5691 0.5623 0.5634 0.5767 0.6013 0.6308 0.6555 0.6673 0.6643 0.6528 0.6455 0.6545 0.6833 0.7219 0.7513 0.7582 0.7522 0.7681 0.8363 0.9341 0.9934 1.1033 - 0.1833 0.2379 0.2893 0.3330 0.3650 0.3839 0.3919 0.3942 0.3972 0.4065 0.4249 0.4521 0.4840 0.5146 0.5380 0.5505 0.5521 0.5470 0.5420 0.5441 0.5575 0.5817 0.6111 0.6371 0.6518 0.6523 0.6429 0.6342 0.6382 0.6610 0.6978 0.7334 0.7518 0.7502 0.7490 0.7815 0.8609 0.9494 0.9971 1.1123 - 0.1925 0.2459 0.2900 0.3221 0.3417 0.3514 0.3565 0.3631 0.3761 0.3977 0.4268 0.4591 0.4892 0.5116 0.5234 0.5254 0.5216 0.5185 0.5224 0.5372 0.5621 0.5919 0.6187 0.6352 0.6381 0.6307 0.6219 0.6230 0.6412 0.6748 0.7125 0.7389 0.7457 0.7418 0.7529 0.8034 0.8878 0.9618 1.0017 1.1220 - 0.1997 0.2445 0.2764 0.2965 0.3083 0.3169 0.3280 0.3456 0.3709 0.4021 0.4348 0.4637 0.4844 0.4949 0.4966 0.4939 0.4929 0.4994 0.5162 0.5423 0.5726 0.5997 0.6170 0.6215 0.6160 0.6083 0.6085 0.6238 0.6543 0.6915 0.7221 0.7359 0.7352 0.7376 0.7668 0.8326 0.9138 0.9710 1.0086 1.1320 - 0.1949 0.2276 0.2489 0.2635 0.2766 0.2930 0.3158 0.3449 0.3780 0.4104 0.4375 0.4559 0.4647 0.4661 0.4648 0.4666 0.4762 0.4956 0.5230 0.5534 0.5799 0.5969 0.6020 0.5981 0.5923 0.5935 0.6082 0.6369 0.6729 0.7047 0.7226 0.7257 0.7259 0.7431 0.7918 0.8657 0.9357 0.9774 1.0190 1.1421 - 0.1755 0.1996 0.2181 0.2365 0.2590 0.2871 0.3200 0.3542 0.3856 0.4101 0.4256 0.4325 0.4340 0.4348 0.4401 0.4537 0.4761 0.5050 0.5349 0.5599 0.5752 0.5799 0.5770 0.5734 0.5769 0.5930 0.6217 0.6569 0.6887 0.7083 0.7139 0.7142 0.7254 0.7623 0.8259 0.8977 0.9514 0.9829 1.0340 1.1519 - 0.1495 0.1733 0.1977 0.2263 0.2596 0.2955 0.3303 0.3598 0.3811 0.3935 0.3988 0.4008 0.4044 0.4140 0.4320 0.4578 0.4878 0.5169 0.5396 0.5526 0.5559 0.5536 0.5523 0.5588 0.5774 0.6072 0.6423 0.6737 0.6938 0.7008 0.7017 0.7104 0.7402 0.7950 0.8634 0.9235 0.9612 0.9910 1.0542 1.1612 - 0.1300 0.1609 0.1951 0.2327 0.2707 0.3050 0.3322 0.3503 0.3601 0.3645 0.3679 0.3750 0.3892 0.4115 0.4401 0.4708 0.4985 0.5185 0.5289 0.5309 0.5294 0.5306 0.5405 0.5619 0.5932 0.6282 0.6588 0.6785 0.6862 0.6883 0.6966 0.7229 0.7718 0.8357 0.8971 0.9406 0.9682 1.0053 1.0791 1.1695 - 0.1260 0.1652 0.2056 0.2443 0.2774 0.3020 0.3176 0.3259 0.3307 0.3366 0.3478 0.3665 0.3925 0.4229 0.4531 0.4785 0.4955 0.5034 0.5049 0.5048 0.5094 0.5232 0.5477 0.5803 0.6147 0.6436 0.6619 0.6697 0.6731 0.6827 0.7085 0.7544 0.8145 0.8747 0.9209 0.9505 0.9783 1.0283 1.1066 1.1765 - 0.1351 0.1774 0.2157 0.2468 0.2691 0.2830 0.2912 0.2980 0.3077 0.3235 0.3465 0.3751 0.4060 0.4344 0.4566 0.4702 0.4761 0.4777 0.4803 0.4891 0.5074 0.5351 0.5686 0.6017 0.6282 0.6443 0.6516 0.6564 0.6682 0.6955 0.7408 0.7986 0.8568 0.9033 0.9343 0.9596 0.9976 1.0600 1.1337 1.1819 - 0.1464 0.1841 0.2134 0.2340 0.2474 0.2570 0.2670 0.2813 0.3019 0.3285 0.3588 0.3889 0.4145 0.4329 0.4433 0.4478 0.4504 0.4564 0.4699 0.4928 0.5235 0.5575 0.5888 0.6123 0.6260 0.6327 0.6391 0.6539 0.6838 0.7299 0.7863 0.8424 0.8877 0.9190 0.9436 0.9765 1.0290 1.0966 1.1566 1.1855 - 0.1488 0.1774 0.1974 0.2116 0.2238 0.2381 0.2572 0.2822 0.3116 0.3424 0.3707 0.3931 0.4078 0.4156 0.4196 0.4242 0.4341 0.4524 0.4793 0.5120 0.5457 0.5746 0.5951 0.6067 0.6134 0.6222 0.6407 0.6739 0.7214 0.7770 0.8306 0.8737 0.9041 0.9286 0.9596 1.0073 1.0697 1.1309 1.1715 1.1873 - 0.1389 0.1601 0.1764 0.1922 0.2111 0.2349 0.2635 0.2947 0.3250 0.3509 0.3698 0.3815 0.3877 0.3924 0.3999 0.4142 0.4368 0.4668 0.5005 0.5327 0.5587 0.5762 0.5863 0.5938 0.6058 0.6288 0.6659 0.7151 0.7697 0.8205 0.8608 0.8897 0.9141 0.9450 0.9909 1.0503 1.1104 1.1546 1.1764 1.1873 - 0.1224 0.1422 0.1621 0.1854 0.2135 0.2449 0.2770 0.3061 0.3293 0.3452 0.3546 0.3604 0.3667 0.3777 0.3963 0.4228 0.4549 0.4885 0.5185 0.5412 0.5559 0.5651 0.5743 0.5902 0.6179 0.6589 0.7097 0.7632 0.8111 0.8484 0.8757 0.9003 0.9322 0.9782 1.0361 1.0946 1.1388 1.1620 1.1716 1.1858 - 0.1087 0.1329 0.1604 0.1918 0.2254 0.2578 0.2856 0.3065 0.3200 0.3280 0.3342 0.3427 0.3573 0.3797 0.4092 0.4426 0.4753 0.5029 0.5227 0.5352 0.5442 0.5556 0.5755 0.6078 0.6521 0.7041 0.7561 0.8011 0.8355 0.8616 0.8872 0.9211 0.9684 1.0260 1.0824 1.1245 1.1463 1.1537 1.1607 1.1831 - 0.1039 0.1350 0.1690 0.2040 0.2366 0.2635 0.2828 0.2949 0.3026 0.3097 0.3206 0.3383 0.3637 0.3952 0.4290 0.4604 0.4856 0.5031 0.5145 0.5242 0.5383 0.5621 0.5983 0.6452 0.6973 0.7475 0.7894 0.8213 0.8468 0.8739 0.9106 0.9602 1.0181 1.0726 1.1114 1.1298 1.1345 1.1383 1.1496 1.1796 - 0.1083 0.1444 0.1805 0.2132 0.2397 0.2584 0.2703 0.2784 0.2870 0.3002 0.3204 0.3478 0.3803 0.4137 0.4437 0.4669 0.4828 0.4938 0.5049 0.5219 0.5494 0.5887 0.6372 0.6891 0.7371 0.7763 0.8062 0.8314 0.8601 0.8996 0.9516 1.0101 1.0630 1.0984 1.1131 1.1151 1.1184 1.1304 1.1452 1.1757 - 0.1174 0.1547 0.1879 0.2146 0.2335 0.2460 0.2553 0.2656 0.2807 0.3028 0.3316 0.3644 0.3972 0.4257 0.4473 0.4622 0.4734 0.4860 0.5056 0.5360 0.5777 0.6273 0.6785 0.7248 0.7619 0.7905 0.8159 0.8461 0.8878 0.9414 1.0000 1.0511 1.0836 1.0954 1.0960 1.1015 1.1209 1.1452 1.1537 1.1719 - 0.1262 0.1607 0.1883 0.2084 0.2221 0.2328 0.2447 0.2614 0.2849 0.3144 0.3473 0.3795 0.4070 0.4277 0.4420 0.4535 0.4673 0.4887 0.5210 0.5641 0.6141 0.6648 0.7100 0.7460 0.7741 0.8001 0.8318 0.8749 0.9293 0.9872 1.0363 1.0664 1.0763 1.0772 1.0871 1.1174 1.1610 1.1911 1.1778 1.1684 - 0.1311 0.1610 0.1829 0.1984 0.2107 0.2239 0.2416 0.2657 0.2957 0.3286 0.3606 0.3878 0.4083 0.4227 0.4345 0.4489 0.4710 0.5040 0.5474 0.5973 0.6476 0.6922 0.7280 0.7564 0.7833 0.8161 0.8601 0.9147 0.9719 1.0195 1.0478 1.0566 1.0584 1.0731 1.1147 1.1792 1.2412 1.2645 1.2164 1.1655 - 0.1316 0.1569 0.1748 0.1888 0.2030 0.2210 0.2451 0.2750 0.3080 0.3403 0.3680 0.3890 0.4040 0.4162 0.4306 0.4524 0.4847 0.5275 0.5768 0.6269 0.6716 0.7078 0.7368 0.7643 0.7975 0.8418 0.8964 0.9537 1.0013 1.0295 1.0382 1.0405 1.0580 1.1078 1.1884 1.2769 1.3407 1.3491 1.2646 1.1633 - 0.1289 0.1507 0.1669 0.1820 0.1999 0.2233 0.2525 0.2854 0.3182 0.3472 0.3697 0.3858 0.3984 0.4123 0.4327 0.4633 0.5043 0.5528 0.6027 0.6483 0.6856 0.7155 0.7430 0.7755 0.8187 0.8728 0.9308 0.9806 1.0115 1.0220 1.0243 1.0411 1.0930 1.1824 1.2873 1.3744 1.4235 1.4224 1.3151 1.1618 - 0.1248 0.1446 0.1609 0.1784 0.2004 0.2283 0.2606 0.2942 0.3249 0.3497 0.3678 0.3813 0.3944 0.4125 0.4399 0.4780 0.5248 0.5748 0.6220 0.6616 0.6930 0.7203 0.7507 0.7908 0.8429 0.9016 0.9555 0.9923 1.0075 1.0101 1.0224 1.0689 1.1585 1.2722 1.3710 1.4281 1.4560 1.4658 1.3609 1.1609 - 0.1207 0.1398 0.1571 0.1774 0.2029 0.2338 0.2676 0.3004 0.3284 0.3496 0.3648 0.3774 0.3927 0.4156 0.4491 0.4927 0.5422 0.5914 0.6346 0.6691 0.6971 0.7249 0.7601 0.8075 0.8649 0.9231 0.9687 0.9928 0.9985 1.0043 1.0374 1.1162 1.2318 1.3439 1.4062 1.4146 1.4267 1.4734 1.3971 1.1605 - 0.1175 0.1365 0.1552 0.1777 0.2058 0.2385 0.2727 0.3042 0.3298 0.3485 0.3621 0.3750 0.3928 0.4198 0.4577 0.5045 0.5549 0.6023 0.6420 0.6731 0.6998 0.7295 0.7694 0.8218 0.8814 0.9362 0.9736 0.9885 0.9913 1.0066 1.0616 1.1650 1.2899 1.3799 1.3906 1.3484 1.3556 1.4550 1.4220 1.1604 - 0.1155 0.1347 0.1543 0.1783 0.2079 0.2415 0.2756 0.3062 0.3302 0.3474 0.3604 0.3739 0.3935 0.4231 0.4636 0.5120 0.5624 0.6084 0.6459 0.6752 0.7017 0.7331 0.7761 0.8311 0.8910 0.9427 0.9744 0.9845 0.9879 1.0122 1.0827 1.1995 1.3230 1.3874 1.3542 1.2749 1.2847 1.4308 1.4359 1.1604 - 0.1148 0.1341 0.1541 0.1786 0.2086 0.2425 0.2766 0.3067 0.3303 0.3470 0.3598 0.3736 0.3938 0.4243 0.4657 0.5145 0.5649 0.6103 0.6470 0.6758 0.7023 0.7345 0.7785 0.8344 0.8942 0.9446 0.9743 0.9830 0.9870 1.0148 1.0908 1.2117 1.3330 1.3865 1.3361 1.2434 1.2553 1.4201 1.4403 1.1604 - 0.2874 0.3243 0.3453 0.3604 0.3780 0.4034 0.4373 0.4754 0.5109 0.5372 0.5505 0.5513 0.5448 0.5385 0.5399 0.5531 0.5769 0.6054 0.6300 0.6433 0.6427 0.6321 0.6205 0.6182 0.6311 0.6568 0.6846 0.7012 0.6990 0.6828 0.6699 0.6784 0.7117 0.7503 0.7665 0.7620 0.7877 0.8851 0.9787 1.1157 - 0.2859 0.3222 0.3431 0.3584 0.3766 0.4028 0.4372 0.4755 0.5108 0.5366 0.5492 0.5495 0.5428 0.5368 0.5388 0.5527 0.5770 0.6056 0.6299 0.6427 0.6415 0.6306 0.6193 0.6175 0.6310 0.6570 0.6848 0.7010 0.6983 0.6820 0.6694 0.6786 0.7123 0.7506 0.7662 0.7617 0.7883 0.8861 0.9789 1.1161 - 0.2814 0.3159 0.3364 0.3527 0.3729 0.4013 0.4373 0.4759 0.5103 0.5343 0.5449 0.5439 0.5369 0.5320 0.5359 0.5517 0.5774 0.6062 0.6295 0.6405 0.6379 0.6264 0.6157 0.6156 0.6309 0.6579 0.6854 0.7002 0.6961 0.6796 0.6683 0.6794 0.7141 0.7514 0.7654 0.7610 0.7903 0.8892 0.9797 1.1174 - 0.2733 0.3054 0.3257 0.3441 0.3678 0.3996 0.4378 0.4765 0.5090 0.5298 0.5372 0.5343 0.5275 0.5246 0.5318 0.5508 0.5784 0.6070 0.6283 0.6365 0.6314 0.6193 0.6101 0.6129 0.6312 0.6595 0.6860 0.6984 0.6921 0.6755 0.6667 0.6811 0.7172 0.7527 0.7638 0.7600 0.7936 0.8942 0.9809 1.1195 - 0.2612 0.2909 0.3120 0.3341 0.3627 0.3988 0.4390 0.4768 0.5058 0.5220 0.5254 0.5207 0.5150 0.5158 0.5277 0.5507 0.5801 0.6076 0.6255 0.6297 0.6219 0.6098 0.6034 0.6105 0.6324 0.6618 0.6863 0.6949 0.6859 0.6700 0.6652 0.6843 0.7217 0.7542 0.7615 0.7588 0.7986 0.9009 0.9825 1.1223 - 0.2449 0.2733 0.2972 0.3247 0.3593 0.3997 0.4407 0.4757 0.4993 0.5097 0.5092 0.5037 0.5009 0.5070 0.5248 0.5520 0.5822 0.6070 0.6200 0.6194 0.6093 0.5985 0.5966 0.6093 0.6350 0.6644 0.6853 0.6890 0.6774 0.6635 0.6646 0.6892 0.7276 0.7555 0.7583 0.7580 0.8055 0.9090 0.9844 1.1259 - 0.2255 0.2548 0.2838 0.3183 0.3590 0.4021 0.4416 0.4713 0.4879 0.4922 0.4888 0.4847 0.4871 0.5003 0.5244 0.5547 0.5837 0.6038 0.6106 0.6053 0.5943 0.5869 0.5914 0.6104 0.6391 0.6666 0.6819 0.6801 0.6668 0.6570 0.6658 0.6964 0.7342 0.7559 0.7542 0.7582 0.8149 0.9182 0.9865 1.1303 - 0.2055 0.2386 0.2747 0.3166 0.3618 0.4047 0.4393 0.4614 0.4703 0.4697 0.4659 0.4663 0.4762 0.4973 0.5266 0.5577 0.5828 0.5961 0.5963 0.5877 0.5783 0.5771 0.5895 0.6143 0.6439 0.6670 0.6751 0.6678 0.6550 0.6519 0.6698 0.7055 0.7405 0.7548 0.7498 0.7606 0.8271 0.9281 0.9890 1.1352 - 0.1886 0.2283 0.2722 0.3196 0.3656 0.4043 0.4309 0.4440 0.4465 0.4440 0.4438 0.4518 0.4706 0.4986 0.5304 0.5586 0.5769 0.5823 0.5771 0.5681 0.5639 0.5712 0.5917 0.6205 0.6477 0.6636 0.6638 0.6529 0.6436 0.6500 0.6772 0.7157 0.7452 0.7514 0.7458 0.7666 0.8425 0.9382 0.9920 1.1406 - 0.1789 0.2261 0.2759 0.3247 0.3666 0.3969 0.4138 0.4192 0.4188 0.4192 0.4265 0.4441 0.4711 0.5030 0.5329 0.5544 0.5638 0.5621 0.5548 0.5496 0.5540 0.5711 0.5981 0.6271 0.6483 0.6550 0.6482 0.6371 0.6353 0.6527 0.6876 0.7253 0.7467 0.7460 0.7438 0.7775 0.8609 0.9478 0.9960 1.1463 - 0.1784 0.2313 0.2824 0.3268 0.3599 0.3797 0.3881 0.3900 0.3920 0.4002 0.4178 0.4444 0.4762 0.5068 0.5300 0.5420 0.5431 0.5376 0.5329 0.5360 0.5510 0.5766 0.6063 0.6309 0.6430 0.6407 0.6303 0.6237 0.6326 0.6607 0.6997 0.7321 0.7439 0.7395 0.7460 0.7943 0.8814 0.9564 1.0015 1.1522 - 0.1853 0.2390 0.2852 0.3202 0.3423 0.3532 0.3578 0.3623 0.3723 0.3911 0.4184 0.4503 0.4811 0.5050 0.5182 0.5209 0.5170 0.5133 0.5164 0.5306 0.5554 0.5855 0.6123 0.6283 0.6303 0.6220 0.6135 0.6164 0.6374 0.6732 0.7106 0.7337 0.7369 0.7342 0.7545 0.8168 0.9025 0.9635 1.0092 1.1581 - 0.1936 0.2418 0.2782 0.3020 0.3152 0.3226 0.3302 0.3431 0.3641 0.3927 0.4251 0.4558 0.4796 0.4931 0.4966 0.4940 0.4914 0.4952 0.5095 0.5341 0.5644 0.5926 0.6113 0.6168 0.6113 0.6030 0.6026 0.6181 0.6495 0.6873 0.7171 0.7291 0.7276 0.7335 0.7708 0.8438 0.9221 0.9694 1.0198 1.1636 - 0.1954 0.2336 0.2590 0.2746 0.2852 0.2964 0.3130 0.3369 0.3672 0.4002 0.4305 0.4536 0.4668 0.4706 0.4690 0.4679 0.4731 0.4883 0.5132 0.5434 0.5721 0.5922 0.6001 0.5972 0.5904 0.5892 0.6017 0.6294 0.6657 0.6984 0.7167 0.7195 0.7203 0.7409 0.7954 0.8725 0.9382 0.9748 1.0340 1.1685 - 0.1855 0.2134 0.2318 0.2461 0.2618 0.2826 0.3099 0.3421 0.3754 0.4050 0.4267 0.4389 0.4428 0.4424 0.4433 0.4507 0.4675 0.4932 0.5234 0.5517 0.5719 0.5807 0.5796 0.5746 0.5743 0.5860 0.6118 0.6468 0.6805 0.7024 0.7092 0.7091 0.7201 0.7590 0.8261 0.8993 0.9497 0.9814 1.0520 1.1726 - 0.1651 0.1874 0.2061 0.2266 0.2522 0.2832 0.3174 0.3508 0.3791 0.3989 0.4097 0.4134 0.4142 0.4175 0.4278 0.4471 0.4741 0.5044 0.5319 0.5513 0.5598 0.5595 0.5559 0.5570 0.5694 0.5950 0.6294 0.6636 0.6878 0.6976 0.6982 0.7044 0.7321 0.7878 0.8591 0.9207 0.9572 0.9916 1.0735 1.1756 - 0.1420 0.1659 0.1916 0.2219 0.2565 0.2926 0.3259 0.3525 0.3703 0.3795 0.3829 0.3852 0.3913 0.4048 0.4269 0.4556 0.4860 0.5126 0.5305 0.5382 0.5380 0.5356 0.5384 0.5520 0.5781 0.6126 0.6470 0.6726 0.6846 0.6868 0.6911 0.7120 0.7581 0.8236 0.8891 0.9350 0.9636 1.0078 1.0973 1.1773 - 0.1261 0.1572 0.1919 0.2295 0.2669 0.2999 0.3249 0.3408 0.3488 0.3523 0.3564 0.3654 0.3822 0.4070 0.4371 0.4674 0.4927 0.5091 0.5158 0.5158 0.5148 0.5195 0.5349 0.5619 0.5962 0.6304 0.6562 0.6697 0.6736 0.6780 0.6957 0.7354 0.7949 0.8597 0.9114 0.9436 0.9733 1.0313 1.1214 1.1776 - 0.1233 0.1620 0.2019 0.2399 0.2721 0.2957 0.3102 0.3176 0.3222 0.3286 0.3408 0.3608 0.3879 0.4186 0.4481 0.4716 0.4862 0.4920 0.4925 0.4935 0.5009 0.5187 0.5469 0.5811 0.6143 0.6394 0.6530 0.6581 0.6635 0.6806 0.7171 0.7723 0.8348 0.8888 0.9251 0.9513 0.9910 1.0615 1.1428 1.1766 - 0.1314 0.1731 0.2111 0.2423 0.2646 0.2783 0.2863 0.2927 0.3021 0.3179 0.3409 0.3697 0.4004 0.4283 0.4494 0.4619 0.4669 0.4683 0.4717 0.4824 0.5032 0.5330 0.5672 0.5991 0.6226 0.6356 0.6412 0.6478 0.6654 0.7009 0.7536 0.8141 0.8685 0.9072 0.9336 0.9647 1.0191 1.0948 1.1587 1.1742 - 0.1421 0.1803 0.2105 0.2319 0.2456 0.2549 0.2639 0.2770 0.2964 0.3222 0.3522 0.3823 0.4081 0.4266 0.4369 0.4411 0.4436 0.4498 0.4640 0.4878 0.5194 0.5536 0.5842 0.6060 0.6179 0.6238 0.6317 0.6505 0.6862 0.7376 0.7964 0.8501 0.8900 0.9173 0.9449 0.9895 1.0558 1.1256 1.1668 1.1708 - 0.1466 0.1769 0.1981 0.2126 0.2238 0.2361 0.2529 0.2758 0.3040 0.3347 0.3637 0.3873 0.4032 0.4117 0.4156 0.4196 0.4286 0.4461 0.4727 0.5055 0.5394 0.5685 0.5886 0.5998 0.6062 0.6158 0.6366 0.6732 0.7240 0.7811 0.8335 0.8733 0.9011 0.9275 0.9669 1.0262 1.0945 1.1470 1.1661 1.1667 - 0.1408 0.1634 0.1795 0.1934 0.2092 0.2297 0.2557 0.2857 0.3165 0.3442 0.3655 0.3792 0.3865 0.3907 0.3966 0.4086 0.4292 0.4580 0.4915 0.5245 0.5517 0.5701 0.5806 0.5880 0.5999 0.6232 0.6615 0.7123 0.7680 0.8186 0.8574 0.8850 0.9110 0.9479 1.0027 1.0685 1.1252 1.1543 1.1583 1.1624 - 0.1275 0.1465 0.1635 0.1828 0.2068 0.2356 0.2670 0.2976 0.3238 0.3430 0.3549 0.3615 0.3666 0.3747 0.3898 0.4132 0.4437 0.4775 0.5091 0.5342 0.5508 0.5607 0.5692 0.5835 0.6098 0.6502 0.7015 0.7561 0.8049 0.8423 0.8695 0.8953 0.9311 0.9833 1.0467 1.1044 1.1389 1.1476 1.1473 1.1582 - 0.1131 0.1338 0.1565 0.1836 0.2147 0.2473 0.2777 0.3026 0.3202 0.3308 0.3371 0.3432 0.3536 0.3714 0.3973 0.4292 0.4629 0.4933 0.5165 0.5314 0.5409 0.5505 0.5671 0.5960 0.6383 0.6902 0.7439 0.7911 0.8272 0.8541 0.8802 0.9159 0.9669 1.0284 1.0855 1.1222 1.1337 1.1333 1.1391 1.1547 - 0.1038 0.1298 0.1594 0.1924 0.2261 0.2566 0.2809 0.2976 0.3075 0.3138 0.3210 0.3332 0.3531 0.3808 0.4136 0.4472 0.4765 0.4983 0.5123 0.5217 0.5325 0.5511 0.5820 0.6257 0.6778 0.7305 0.7763 0.8113 0.8381 0.8648 0.9013 0.9522 1.0128 1.0690 1.1057 1.1181 1.1178 1.1236 1.1404 1.1523 - 0.1020 0.1339 0.1684 0.2030 0.2340 0.2585 0.2751 0.2851 0.2920 0.3001 0.3136 0.3349 0.3635 0.3968 0.4300 0.4585 0.4795 0.4931 0.5030 0.5150 0.5353 0.5678 0.6123 0.6642 0.7160 0.7605 0.7945 0.8211 0.8484 0.8855 0.9369 0.9975 1.0535 1.0902 1.1025 1.1017 1.1084 1.1326 1.1566 1.1513 - 0.1066 0.1425 0.1779 0.2098 0.2351 0.2525 0.2634 0.2712 0.2803 0.2947 0.3167 0.3457 0.3788 0.4116 0.4396 0.4602 0.4739 0.4843 0.4974 0.5189 0.5524 0.5974 0.6491 0.7002 0.7438 0.7773 0.8036 0.8309 0.8682 0.9196 0.9803 1.0369 1.0744 1.0873 1.0862 1.0936 1.1251 1.1700 1.1896 1.1517 - 0.1143 0.1510 0.1841 0.2108 0.2297 0.2421 0.2510 0.2610 0.2760 0.2981 0.3271 0.3599 0.3924 0.4202 0.4408 0.4548 0.4657 0.4793 0.5013 0.5350 0.5800 0.6315 0.6824 0.7261 0.7597 0.7861 0.8131 0.8496 0.9000 0.9602 1.0175 1.0569 1.0716 1.0712 1.0790 1.1159 1.1793 1.2360 1.2374 1.1537 - 0.1217 0.1567 0.1854 0.2066 0.2209 0.2312 0.2419 0.2570 0.2788 0.3073 0.3399 0.3723 0.4005 0.4217 0.4363 0.4476 0.4611 0.4825 0.5153 0.5594 0.6105 0.6617 0.7063 0.7411 0.7683 0.7951 0.8302 0.8786 0.9375 0.9952 1.0371 1.0549 1.0559 1.0633 1.1023 1.1783 1.2652 1.3185 1.2940 1.1569 - 0.1268 0.1587 0.1828 0.1996 0.2117 0.2230 0.2377 0.2586 0.2862 0.3183 0.3510 0.3801 0.4027 0.4185 0.4303 0.4433 0.4631 0.4937 0.5358 0.5857 0.6372 0.6834 0.7204 0.7492 0.7761 0.8095 0.8553 0.9122 0.9704 1.0155 1.0376 1.0408 1.0464 1.0825 1.1629 1.2694 1.3589 1.3963 1.3508 1.1611 - 0.1292 0.1576 0.1779 0.1923 0.2045 0.2185 0.2379 0.2638 0.2950 0.3279 0.3585 0.3832 0.4010 0.4138 0.4262 0.4437 0.4711 0.5098 0.5577 0.6089 0.6569 0.6967 0.7279 0.7553 0.7868 0.8294 0.8838 0.9425 0.9919 1.0201 1.0270 1.0299 1.0579 1.1328 1.2470 1.3594 1.4276 1.4471 1.3996 1.1657 - 0.1295 0.1548 0.1726 0.1863 0.1998 0.2172 0.2408 0.2702 0.3029 0.3349 0.3623 0.3830 0.3977 0.4099 0.4251 0.4483 0.4825 0.5269 0.5771 0.6266 0.6696 0.7039 0.7325 0.7622 0.8006 0.8513 0.9098 0.9642 1.0009 1.0146 1.0162 1.0326 1.0923 1.2014 1.3272 1.4158 1.4453 1.4573 1.4351 1.1704 - 0.1285 0.1516 0.1681 0.1820 0.1975 0.2180 0.2446 0.2761 0.3090 0.3392 0.3635 0.3812 0.3944 0.4077 0.4264 0.4549 0.4943 0.5419 0.5921 0.6386 0.6771 0.7079 0.7363 0.7701 0.8151 0.8711 0.9295 0.9764 1.0014 1.0065 1.0122 1.0495 1.1392 1.2672 1.3797 1.4217 1.4073 1.4286 1.4558 1.1747 - 0.1272 0.1488 0.1648 0.1793 0.1967 0.2195 0.2482 0.2806 0.3130 0.3414 0.3634 0.3793 0.3921 0.4069 0.4289 0.4614 0.5041 0.5532 0.6024 0.6459 0.6812 0.7103 0.7399 0.7776 0.8274 0.8860 0.9420 0.9818 0.9983 1.0006 1.0150 1.0724 1.1832 1.3146 1.3983 1.3873 1.3352 1.3784 1.4647 1.1780 - 0.1261 0.1471 0.1628 0.1780 0.1965 0.2208 0.2506 0.2833 0.3152 0.3423 0.3630 0.3779 0.3908 0.4069 0.4311 0.4659 0.5104 0.5600 0.6082 0.6498 0.6832 0.7117 0.7425 0.7829 0.8355 0.8949 0.9486 0.9834 0.9953 0.9978 1.0200 1.0912 1.2129 1.3399 1.3960 1.3439 1.2676 1.3328 1.4670 1.1802 - 0.1258 0.1464 0.1622 0.1776 0.1965 0.2213 0.2514 0.2842 0.3158 0.3426 0.3627 0.3774 0.3904 0.4069 0.4319 0.4676 0.5126 0.5622 0.6101 0.6510 0.6838 0.7122 0.7435 0.7848 0.8383 0.8978 0.9506 0.9837 0.9942 0.9970 1.0224 1.0983 1.2233 1.3473 1.3922 1.3247 1.2402 1.3146 1.4671 1.1809 - 0.2386 0.2659 0.2894 0.3173 0.3528 0.3937 0.4344 0.4678 0.4888 0.4963 0.4937 0.4880 0.4869 0.4964 0.5180 0.5477 0.5778 0.5998 0.6082 0.6032 0.5912 0.5822 0.5856 0.6045 0.6340 0.6624 0.6775 0.6742 0.6596 0.6504 0.6624 0.6965 0.7342 0.7504 0.7431 0.7520 0.8242 0.9296 0.9858 1.1635 - 0.2369 0.2642 0.2881 0.3166 0.3527 0.3939 0.4344 0.4675 0.4879 0.4949 0.4921 0.4864 0.4857 0.4959 0.5179 0.5478 0.5778 0.5995 0.6074 0.6020 0.5900 0.5814 0.5853 0.6046 0.6343 0.6624 0.6770 0.6733 0.6588 0.6501 0.6627 0.6972 0.7346 0.7502 0.7427 0.7524 0.8252 0.9303 0.9860 1.1637 - 0.2320 0.2594 0.2845 0.3149 0.3524 0.3944 0.4346 0.4663 0.4850 0.4906 0.4870 0.4818 0.4825 0.4943 0.5178 0.5484 0.5779 0.5983 0.6047 0.5984 0.5865 0.5790 0.5845 0.6052 0.6351 0.6624 0.6755 0.6707 0.6563 0.6492 0.6637 0.6991 0.7357 0.7496 0.7418 0.7535 0.8284 0.9321 0.9866 1.1644 - 0.2240 0.2519 0.2793 0.3126 0.3526 0.3954 0.4346 0.4639 0.4797 0.4830 0.4787 0.4745 0.4776 0.4924 0.5181 0.5493 0.5778 0.5959 0.6000 0.5923 0.5808 0.5754 0.5836 0.6064 0.6366 0.6623 0.6728 0.6662 0.6523 0.6478 0.6655 0.7024 0.7374 0.7485 0.7405 0.7556 0.8336 0.9349 0.9877 1.1654 - 0.2133 0.2428 0.2737 0.3109 0.3536 0.3968 0.4340 0.4595 0.4713 0.4719 0.4673 0.4652 0.4721 0.4907 0.5190 0.5506 0.5771 0.5918 0.5927 0.5837 0.5733 0.5712 0.5833 0.6086 0.6387 0.6616 0.6684 0.6597 0.6469 0.6464 0.6685 0.7068 0.7394 0.7469 0.7389 0.7590 0.8408 0.9386 0.9893 1.1669 - 0.2011 0.2334 0.2690 0.3106 0.3556 0.3981 0.4315 0.4520 0.4592 0.4574 0.4535 0.4550 0.4669 0.4902 0.5209 0.5518 0.5748 0.5850 0.5824 0.5726 0.5646 0.5672 0.5841 0.6119 0.6409 0.6597 0.6620 0.6512 0.6406 0.6456 0.6730 0.7124 0.7413 0.7446 0.7375 0.7642 0.8500 0.9427 0.9916 1.1685 - 0.1890 0.2257 0.2668 0.3125 0.3584 0.3980 0.4259 0.4402 0.4430 0.4401 0.4388 0.4456 0.4637 0.4915 0.5235 0.5519 0.5700 0.5748 0.5690 0.5597 0.5560 0.5647 0.5868 0.6163 0.6426 0.6559 0.6531 0.6411 0.6343 0.6463 0.6790 0.7185 0.7425 0.7414 0.7368 0.7719 0.8612 0.9470 0.9949 1.1703 - 0.1793 0.2216 0.2680 0.3162 0.3604 0.3946 0.4155 0.4236 0.4233 0.4215 0.4251 0.4389 0.4633 0.4945 0.5256 0.5494 0.5611 0.5607 0.5530 0.5464 0.5490 0.5648 0.5915 0.6210 0.6426 0.6492 0.6417 0.6302 0.6293 0.6492 0.6866 0.7242 0.7420 0.7375 0.7378 0.7826 0.8741 0.9513 0.9995 1.1721 - 0.1742 0.2224 0.2723 0.3199 0.3592 0.3859 0.3992 0.4024 0.4017 0.4041 0.4150 0.4364 0.4661 0.4981 0.5256 0.5426 0.5474 0.5428 0.5358 0.5346 0.5452 0.5681 0.5977 0.6246 0.6395 0.6390 0.6283 0.6199 0.6271 0.6550 0.6952 0.7285 0.7393 0.7332 0.7415 0.7969 0.8884 0.9554 1.0058 1.1738 - 0.1751 0.2274 0.2776 0.3207 0.3522 0.3703 0.3773 0.3787 0.3813 0.3909 0.4104 0.4386 0.4707 0.5002 0.5209 0.5300 0.5287 0.5228 0.5198 0.5267 0.5459 0.5742 0.6038 0.6251 0.6320 0.6255 0.6146 0.6125 0.6291 0.6639 0.7037 0.7300 0.7341 0.7296 0.7491 0.8150 0.9032 0.9594 1.0142 1.1751 - 0.1809 0.2339 0.2800 0.3152 0.3373 0.3481 0.3522 0.3562 0.3659 0.3846 0.4119 0.4439 0.4744 0.4975 0.5097 0.5113 0.5069 0.5035 0.5081 0.5244 0.5510 0.5816 0.6072 0.6205 0.6195 0.6098 0.6028 0.6100 0.6362 0.6748 0.7102 0.7276 0.7268 0.7284 0.7619 0.8364 0.9176 0.9633 1.0252 1.1759 - 0.1883 0.2376 0.2756 0.3011 0.3152 0.3222 0.3283 0.3393 0.3584 0.3857 0.4176 0.4488 0.4733 0.4875 0.4913 0.4885 0.4855 0.4889 0.5032 0.5281 0.5587 0.5869 0.6050 0.6093 0.6029 0.5947 0.5960 0.6142 0.6479 0.6858 0.7129 0.7212 0.7194 0.7317 0.7804 0.8598 0.9305 0.9678 1.0391 1.1761 - 0.1924 0.2337 0.2620 0.2791 0.2892 0.2981 0.3111 0.3315 0.3595 0.3918 0.4232 0.4484 0.4639 0.4693 0.4680 0.4658 0.4691 0.4823 0.5060 0.5361 0.5654 0.5866 0.5952 0.5923 0.5852 0.5838 0.5966 0.6251 0.6619 0.6941 0.7105 0.7120 0.7147 0.7418 0.8042 0.8832 0.9409 0.9738 1.0558 1.1754 - 0.1884 0.2202 0.2403 0.2537 0.2657 0.2815 0.3041 0.3333 0.3661 0.3977 0.4231 0.4391 0.4455 0.4455 0.4445 0.4485 0.4617 0.4848 0.5143 0.5439 0.5666 0.5779 0.5780 0.5726 0.5707 0.5806 0.6054 0.6404 0.6747 0.6969 0.7032 0.7031 0.7163 0.7600 0.8317 0.9041 0.9486 0.9825 1.0749 1.1738 - 0.1749 0.1990 0.2159 0.2316 0.2509 0.2762 0.3072 0.3408 0.3723 0.3973 0.4132 0.4200 0.4210 0.4215 0.4269 0.4410 0.4644 0.4938 0.5233 0.5464 0.5590 0.5609 0.5571 0.5555 0.5642 0.5868 0.6204 0.6557 0.6820 0.6930 0.6936 0.6991 0.7276 0.7860 0.8599 0.9205 0.9544 0.9955 1.0956 1.1712 - 0.1550 0.1763 0.1961 0.2192 0.2478 0.2810 0.3156 0.3470 0.3713 0.3865 0.3933 0.3951 0.3970 0.4042 0.4199 0.4443 0.4740 0.5034 0.5266 0.5396 0.5424 0.5396 0.5386 0.5468 0.5682 0.6008 0.6367 0.6659 0.6812 0.6842 0.6865 0.7047 0.7499 0.8172 0.8852 0.9315 0.9607 1.0138 1.1163 1.1677 - 0.1353 0.1597 0.1868 0.2188 0.2544 0.2900 0.3214 0.3450 0.3594 0.3659 0.3683 0.3717 0.3808 0.3984 0.4240 0.4543 0.4838 0.5067 0.5198 0.5232 0.5212 0.5209 0.5291 0.5499 0.5816 0.6175 0.6484 0.6669 0.6730 0.6751 0.6877 0.7229 0.7815 0.8492 0.9047 0.9385 0.9706 1.0377 1.1351 1.1635 - 0.1228 0.1541 0.1892 0.2269 0.2636 0.2951 0.3181 0.3318 0.3382 0.3414 0.3464 0.3574 0.3769 0.4038 0.4345 0.4637 0.4863 0.4991 0.5030 0.5020 0.5028 0.5118 0.5324 0.5635 0.5989 0.6302 0.6506 0.6592 0.6624 0.6727 0.7017 0.7530 0.8173 0.8767 0.9173 0.9450 0.9873 1.0661 1.1498 1.1587 - 0.1210 0.1591 0.1985 0.2360 0.2674 0.2900 0.3035 0.3103 0.3147 0.3215 0.3348 0.3560 0.3839 0.4147 0.4433 0.4649 0.4773 0.4814 0.4816 0.4841 0.4945 0.5160 0.5469 0.5817 0.6126 0.6336 0.6434 0.6477 0.6573 0.6829 0.7292 0.7901 0.8506 0.8961 0.9253 0.9559 1.0127 1.0958 1.1584 1.1538 - 0.1280 0.1692 0.2070 0.2383 0.2607 0.2744 0.2820 0.2881 0.2973 0.3129 0.3359 0.3647 0.3953 0.4227 0.4430 0.4545 0.4587 0.4601 0.4644 0.4769 0.4997 0.5311 0.5656 0.5960 0.6167 0.6270 0.6320 0.6413 0.6651 0.7081 0.7660 0.8264 0.8752 0.9075 0.9339 0.9760 1.0455 1.1222 1.1599 1.1492 - 0.1379 0.1766 0.2078 0.2302 0.2445 0.2535 0.2617 0.2734 0.2915 0.3164 0.3460 0.3761 0.4023 0.4211 0.4315 0.4356 0.4379 0.4441 0.4586 0.4831 0.5153 0.5497 0.5796 0.6001 0.6107 0.6162 0.6256 0.6482 0.6888 0.7443 0.8038 0.8545 0.8897 0.9156 0.9495 1.0066 1.0810 1.1405 1.1547 1.1455 - 0.1438 0.1759 0.1988 0.2140 0.2248 0.2354 0.2498 0.2704 0.2970 0.3272 0.3569 0.3818 0.3992 0.4086 0.4127 0.4160 0.4239 0.4403 0.4662 0.4990 0.5332 0.5627 0.5829 0.5938 0.6001 0.6102 0.6326 0.6717 0.7250 0.7831 0.8342 0.8713 0.8979 0.9279 0.9764 1.0446 1.1116 1.1469 1.1450 1.1430 - 0.1417 0.1664 0.1832 0.1961 0.2092 0.2263 0.2492 0.2774 0.3081 0.3372 0.3609 0.3771 0.3859 0.3902 0.3947 0.4044 0.4225 0.4495 0.4826 0.5163 0.5450 0.5647 0.5759 0.5832 0.5945 0.6175 0.6561 0.7079 0.7645 0.8152 0.8531 0.8803 0.9083 0.9512 1.0135 1.0817 1.1296 1.1413 1.1352 1.1424 - 0.1323 0.1519 0.1672 0.1830 0.2028 0.2279 0.2574 0.2884 0.3170 0.3397 0.3549 0.3633 0.3681 0.3739 0.3853 0.4050 0.4331 0.4663 0.4994 0.5270 0.5461 0.5572 0.5653 0.5778 0.6018 0.6406 0.6918 0.7474 0.7975 0.8357 0.8632 0.8900 0.9290 0.9864 1.0534 1.1080 1.1312 1.1285 1.1308 1.1440 - 0.1195 0.1380 0.1565 0.1786 0.2057 0.2366 0.2681 0.2964 0.3184 0.3329 0.3410 0.3462 0.3532 0.3661 0.3874 0.4165 0.4499 0.4825 0.5093 0.5276 0.5386 0.5471 0.5605 0.5852 0.6242 0.6750 0.7301 0.7801 0.8186 0.8467 0.8729 0.9093 0.9627 1.0274 1.0850 1.1162 1.1193 1.1180 1.1377 1.1480 - 0.1080 0.1293 0.1536 0.1824 0.2145 0.2468 0.2754 0.2973 0.3115 0.3196 0.3252 0.3329 0.3468 0.3691 0.3988 0.4325 0.4650 0.4915 0.5096 0.5206 0.5294 0.5432 0.5680 0.6069 0.6572 0.7117 0.7616 0.8008 0.8296 0.8558 0.8907 0.9413 1.0039 1.0627 1.0990 1.1072 1.1050 1.1214 1.1601 1.1545 - 0.1012 0.1275 0.1576 0.1908 0.2241 0.2535 0.2760 0.2908 0.2992 0.3052 0.3133 0.3276 0.3501 0.3801 0.4139 0.4465 0.4732 0.4916 0.5030 0.5123 0.5262 0.5508 0.5889 0.6383 0.6922 0.7420 0.7817 0.8113 0.8376 0.8714 0.9202 0.9815 1.0414 1.0816 1.0939 1.0917 1.1040 1.1486 1.1993 1.1634 - 0.1001 0.1313 0.1653 0.1995 0.2303 0.2543 0.2703 0.2798 0.2863 0.2946 0.3087 0.3309 0.3604 0.3940 0.4267 0.4539 0.4732 0.4855 0.4953 0.5091 0.5331 0.5702 0.6184 0.6716 0.7215 0.7618 0.7920 0.8182 0.8507 0.8974 0.9576 1.0191 1.0639 1.0809 1.0792 1.0870 1.1306 1.2027 1.2525 1.1742 - 0.1033 0.1381 0.1732 0.2055 0.2316 0.2497 0.2608 0.2683 0.2767 0.2902 0.3114 0.3401 0.3732 0.4060 0.4340 0.4544 0.4678 0.4780 0.4916 0.5144 0.5499 0.5969 0.6496 0.7000 0.7416 0.7727 0.7985 0.8288 0.8725 0.9308 0.9937 1.0438 1.0673 1.0678 1.0712 1.1093 1.1895 1.2771 1.3131 1.1865 - 0.1089 0.1452 0.1791 0.2076 0.2285 0.2420 0.2508 0.2593 0.2720 0.2918 0.3191 0.3514 0.3845 0.4136 0.4356 0.4502 0.4610 0.4737 0.4946 0.5276 0.5726 0.6248 0.6764 0.7202 0.7533 0.7793 0.8072 0.8466 0.9012 0.9642 1.0196 1.0511 1.0567 1.0567 1.0856 1.1643 1.2719 1.3556 1.3717 1.1996 - 0.1149 0.1508 0.1820 0.2062 0.2228 0.2336 0.2425 0.2542 0.2721 0.2974 0.3286 0.3619 0.3924 0.4165 0.4331 0.4446 0.4563 0.4744 0.5038 0.5456 0.5965 0.6492 0.6961 0.7327 0.7603 0.7864 0.8209 0.8702 0.9312 0.9905 1.0311 1.0446 1.0437 1.0612 1.1285 1.2430 1.3561 1.4172 1.4192 1.2128 - 0.1198 0.1543 0.1823 0.2028 0.2164 0.2263 0.2370 0.2526 0.2753 0.3046 0.3376 0.3696 0.3965 0.4160 0.4291 0.4401 0.4551 0.4797 0.5168 0.5647 0.6175 0.6677 0.7089 0.7400 0.7660 0.7962 0.8389 0.8955 0.9567 1.0061 1.0303 1.0327 1.0392 1.0869 1.1927 1.3247 1.4165 1.4439 1.4487 1.2254 - 0.1233 0.1558 0.1809 0.1985 0.2106 0.2210 0.2342 0.2535 0.2799 0.3116 0.3446 0.3745 0.3977 0.4138 0.4254 0.4378 0.4571 0.4879 0.5307 0.5817 0.6340 0.6802 0.7165 0.7447 0.7722 0.8083 0.8582 0.9181 0.9747 1.0117 1.0230 1.0235 1.0481 1.1292 1.2618 1.3867 1.4348 1.4280 1.4585 1.2366 - 0.1254 0.1561 0.1789 0.1946 0.2061 0.2177 0.2333 0.2557 0.2845 0.3172 0.3495 0.3770 0.3974 0.4114 0.4228 0.4375 0.4611 0.4966 0.5431 0.5951 0.6455 0.6880 0.7209 0.7484 0.7789 0.8207 0.8755 0.9355 0.9851 1.0111 1.0149 1.0210 1.0674 1.1763 1.3193 1.4164 1.4096 1.3767 1.4522 1.2460 - 0.1265 0.1557 0.1769 0.1916 0.2032 0.2158 0.2335 0.2579 0.2882 0.3212 0.3524 0.3780 0.3965 0.4095 0.4214 0.4384 0.4653 0.5041 0.5525 0.6045 0.6529 0.6925 0.7235 0.7515 0.7852 0.8312 0.8887 0.9469 0.9901 1.0081 1.0093 1.0239 1.0896 1.2165 1.3565 1.4171 1.3584 1.3105 1.4374 1.2530 - 0.1270 0.1553 0.1756 0.1898 0.2015 0.2150 0.2339 0.2595 0.2906 0.3235 0.3539 0.3783 0.3957 0.4083 0.4209 0.4394 0.4684 0.5091 0.5584 0.6100 0.6569 0.6948 0.7250 0.7536 0.7895 0.8381 0.8967 0.9532 0.9919 1.0055 1.0065 1.0283 1.1065 1.2424 1.3747 1.4053 1.3100 1.2559 1.4236 1.2574 - 0.1271 0.1551 0.1751 0.1892 0.2010 0.2148 0.2341 0.2601 0.2913 0.3242 0.3543 0.3784 0.3954 0.4079 0.4207 0.4398 0.4695 0.5108 0.5603 0.6117 0.6581 0.6955 0.7254 0.7544 0.7911 0.8405 0.8994 0.9551 0.9923 1.0046 1.0057 1.0302 1.1127 1.2512 1.3798 1.3988 1.2904 1.2348 1.4181 1.2588 - 0.1926 0.2255 0.2626 0.3056 0.3511 0.3925 0.4234 0.4404 0.4444 0.4408 0.4372 0.4411 0.4568 0.4838 0.5165 0.5468 0.5667 0.5725 0.5661 0.5551 0.5495 0.5572 0.5797 0.6106 0.6384 0.6518 0.6477 0.6339 0.6267 0.6410 0.6777 0.7194 0.7413 0.7353 0.7302 0.7742 0.8727 0.9513 1.0010 1.1780 - 0.1916 0.2248 0.2624 0.3058 0.3514 0.3925 0.4229 0.4393 0.4430 0.4393 0.4360 0.4404 0.4567 0.4839 0.5167 0.5467 0.5662 0.5715 0.5649 0.5541 0.5489 0.5571 0.5800 0.6110 0.6384 0.6513 0.6468 0.6330 0.6263 0.6412 0.6783 0.7199 0.7412 0.7349 0.7303 0.7751 0.8737 0.9515 1.0014 1.1779 - 0.1886 0.2230 0.2620 0.3064 0.3520 0.3923 0.4213 0.4362 0.4389 0.4351 0.4326 0.4385 0.4562 0.4845 0.5173 0.5464 0.5645 0.5685 0.5614 0.5511 0.5473 0.5572 0.5811 0.6122 0.6384 0.6498 0.6441 0.6305 0.6253 0.6421 0.6801 0.7211 0.7408 0.7339 0.7308 0.7780 0.8767 0.9521 1.0028 1.1777 - 0.1842 0.2206 0.2618 0.3075 0.3531 0.3917 0.4182 0.4306 0.4318 0.4282 0.4273 0.4357 0.4559 0.4856 0.5183 0.5457 0.5614 0.5634 0.5555 0.5462 0.5449 0.5574 0.5831 0.6140 0.6383 0.6470 0.6397 0.6265 0.6238 0.6436 0.6831 0.7228 0.7400 0.7322 0.7318 0.7830 0.8815 0.9531 1.0051 1.1775 - 0.1791 0.2184 0.2623 0.3094 0.3542 0.3901 0.4130 0.4223 0.4220 0.4190 0.4208 0.4328 0.4562 0.4873 0.5193 0.5441 0.5564 0.5558 0.5475 0.5400 0.5422 0.5584 0.5861 0.6163 0.6377 0.6428 0.6334 0.6213 0.6223 0.6462 0.6872 0.7249 0.7385 0.7300 0.7337 0.7901 0.8878 0.9542 1.0086 1.1770 - 0.1744 0.2172 0.2640 0.3119 0.3547 0.3867 0.4050 0.4109 0.4095 0.4083 0.4140 0.4306 0.4574 0.4896 0.5198 0.5409 0.5490 0.5458 0.5375 0.5331 0.5399 0.5604 0.5899 0.6186 0.6359 0.6368 0.6256 0.6155 0.6214 0.6499 0.6921 0.7267 0.7362 0.7276 0.7372 0.7996 0.8955 0.9556 1.0135 1.1762 - 0.1713 0.2180 0.2671 0.3144 0.3537 0.3804 0.3936 0.3964 0.3953 0.3973 0.4083 0.4299 0.4599 0.4921 0.5191 0.5352 0.5387 0.5333 0.5263 0.5264 0.5389 0.5638 0.5943 0.6202 0.6324 0.6288 0.6167 0.6100 0.6220 0.6552 0.6975 0.7276 0.7327 0.7254 0.7427 0.8115 0.9040 0.9571 1.0200 1.1751 - 0.1709 0.2212 0.2711 0.3157 0.3497 0.3701 0.3784 0.3796 0.3805 0.3876 0.4047 0.4315 0.4634 0.4938 0.5159 0.5262 0.5254 0.5190 0.5152 0.5212 0.5400 0.5686 0.5986 0.6201 0.6263 0.6188 0.6072 0.6059 0.6247 0.6620 0.7026 0.7270 0.7280 0.7240 0.7509 0.8259 0.9131 0.9589 1.0284 1.1736 - 0.1738 0.2261 0.2745 0.3142 0.3412 0.3553 0.3601 0.3618 0.3671 0.3809 0.4045 0.4351 0.4669 0.4932 0.5090 0.5132 0.5093 0.5042 0.5056 0.5187 0.5435 0.5742 0.6017 0.6171 0.6173 0.6072 0.5986 0.6043 0.6303 0.6700 0.7067 0.7242 0.7223 0.7243 0.7624 0.8424 0.9220 0.9614 1.0389 1.1716 - 0.1792 0.2311 0.2752 0.3078 0.3275 0.3365 0.3402 0.3453 0.3572 0.3784 0.4075 0.4397 0.4686 0.4887 0.4975 0.4967 0.4919 0.4907 0.4992 0.5197 0.5490 0.5794 0.6018 0.6102 0.6053 0.5952 0.5923 0.6066 0.6388 0.6785 0.7088 0.7189 0.7164 0.7275 0.7776 0.8603 0.9303 0.9649 1.0516 1.1690 - 0.1853 0.2337 0.2709 0.2955 0.3088 0.3153 0.3215 0.3328 0.3527 0.3805 0.4126 0.4431 0.4663 0.4788 0.4812 0.4778 0.4755 0.4809 0.4975 0.5244 0.5554 0.5822 0.5974 0.5988 0.5912 0.5846 0.5902 0.6133 0.6497 0.6859 0.7078 0.7116 0.7118 0.7349 0.7965 0.8786 0.9375 0.9702 1.0663 1.1658 - 0.1891 0.2310 0.2600 0.2774 0.2872 0.2952 0.3072 0.3266 0.3539 0.3858 0.4172 0.4425 0.4579 0.4632 0.4616 0.4593 0.4629 0.4767 0.5009 0.5313 0.5603 0.5804 0.5875 0.5838 0.5770 0.5776 0.5933 0.6242 0.6613 0.6908 0.7033 0.7034 0.7105 0.7475 0.8184 0.8958 0.9434 0.9781 1.0827 1.1621 - 0.1875 0.2213 0.2427 0.2560 0.2666 0.2799 0.2999 0.3272 0.3593 0.3913 0.4179 0.4354 0.4429 0.4432 0.4417 0.4446 0.4566 0.4789 0.5081 0.5379 0.5610 0.5724 0.5725 0.5671 0.5656 0.5763 0.6022 0.6377 0.6713 0.6915 0.6961 0.6968 0.7149 0.7659 0.8419 0.9106 0.9484 0.9894 1.1000 1.1579 - 0.1788 0.2050 0.2219 0.2355 0.2510 0.2724 0.3004 0.3329 0.3654 0.3928 0.4116 0.4208 0.4227 0.4222 0.4253 0.4366 0.4577 0.4861 0.5161 0.5408 0.5552 0.5583 0.5546 0.5523 0.5599 0.5818 0.6152 0.6508 0.6770 0.6876 0.6879 0.6946 0.7267 0.7895 0.8649 0.9219 0.9534 1.0047 1.1171 1.1534 - 0.1636 0.1851 0.2021 0.2204 0.2439 0.2733 0.3066 0.3396 0.3676 0.3872 0.3973 0.4004 0.4010 0.4047 0.4161 0.4368 0.4649 0.4951 0.5209 0.5371 0.5424 0.5401 0.5376 0.5431 0.5619 0.5932 0.6296 0.6602 0.6768 0.6801 0.6819 0.7002 0.7469 0.8166 0.8851 0.9296 0.9600 1.0244 1.1326 1.1488 - 0.1454 0.1667 0.1882 0.2141 0.2455 0.2801 0.3139 0.3424 0.3623 0.3731 0.3770 0.3784 0.3829 0.3948 0.4157 0.4438 0.4743 0.5009 0.5186 0.5256 0.5247 0.5223 0.5263 0.5426 0.5716 0.6076 0.6410 0.6628 0.6707 0.6721 0.6822 0.7155 0.7743 0.8440 0.9007 0.9349 0.9706 1.0479 1.1450 1.1444 - 0.1293 0.1546 0.1833 0.2167 0.2529 0.2877 0.3168 0.3372 0.3485 0.3529 0.3552 0.3604 0.3730 0.3942 0.4226 0.4534 0.4807 0.4995 0.5080 0.5084 0.5065 0.5099 0.5243 0.5511 0.5861 0.6207 0.6460 0.6581 0.6614 0.6680 0.6921 0.7404 0.8057 0.8683 0.9114 0.9404 0.9870 1.0737 1.1527 1.1408 - 0.1198 0.1516 0.1870 0.2247 0.2607 0.2906 0.3116 0.3234 0.3286 0.3317 0.3379 0.3511 0.3728 0.4014 0.4322 0.4598 0.4794 0.4891 0.4908 0.4900 0.4934 0.5069 0.5322 0.5660 0.6006 0.6278 0.6430 0.6484 0.6539 0.6725 0.7128 0.7723 0.8362 0.8867 0.9184 0.9498 1.0102 1.0993 1.1548 1.1384 - 0.1189 0.1566 0.1956 0.2325 0.2632 0.2850 0.2977 0.3039 0.3081 0.3155 0.3296 0.3519 0.3805 0.4112 0.4387 0.4585 0.4690 0.4718 0.4721 0.4763 0.4898 0.5144 0.5473 0.5817 0.6099 0.6269 0.6339 0.6391 0.6542 0.6885 0.7427 0.8058 0.8613 0.8986 0.9254 0.9664 1.0393 1.1210 1.1512 1.1376 - 0.1250 0.1655 0.2033 0.2347 0.2574 0.2711 0.2786 0.2843 0.2931 0.3085 0.3314 0.3602 0.3906 0.4177 0.4374 0.4481 0.4517 0.4530 0.4582 0.4722 0.4968 0.5294 0.5638 0.5926 0.6109 0.6191 0.6241 0.6367 0.6663 0.7155 0.7768 0.8352 0.8783 0.9064 0.9370 0.9918 1.0709 1.1354 1.1430 1.1389 - 0.1338 0.1729 0.2051 0.2288 0.2438 0.2528 0.2602 0.2706 0.2873 0.3112 0.3402 0.3704 0.3971 0.4164 0.4271 0.4312 0.4333 0.4393 0.4538 0.4786 0.5112 0.5458 0.5753 0.5949 0.6044 0.6097 0.6205 0.6464 0.6910 0.7493 0.8087 0.8563 0.8880 0.9148 0.9569 1.0246 1.0995 1.1401 1.1331 1.1429 - 0.1404 0.1744 0.1993 0.2158 0.2265 0.2358 0.2479 0.2660 0.2908 0.3202 0.3503 0.3766 0.3956 0.4064 0.4109 0.4136 0.4202 0.4352 0.4600 0.4925 0.5271 0.5572 0.5780 0.5890 0.5951 0.6053 0.6285 0.6693 0.7243 0.7831 0.8332 0.8684 0.8950 0.9295 0.9862 1.0596 1.1193 1.1351 1.1255 1.1499 - 0.1414 0.1687 0.1871 0.1999 0.2111 0.2249 0.2444 0.2701 0.2998 0.3299 0.3560 0.3749 0.3858 0.3908 0.3943 0.4016 0.4168 0.4416 0.4737 0.5081 0.5384 0.5600 0.5723 0.5796 0.5898 0.6116 0.6497 0.7018 0.7593 0.8106 0.8483 0.8756 0.9057 0.9538 1.0217 1.0896 1.1261 1.1238 1.1250 1.1599 - 0.1361 0.1576 0.1727 0.1860 0.2016 0.2224 0.2489 0.2790 0.3091 0.3351 0.3540 0.3652 0.3708 0.3751 0.3831 0.3987 0.4235 0.4552 0.4892 0.5194 0.5414 0.5546 0.5628 0.5733 0.5943 0.6305 0.6806 0.7371 0.7890 0.8288 0.8570 0.8844 0.9256 0.9869 1.0565 1.1072 1.1200 1.1132 1.1364 1.1731 - 0.1264 0.1447 0.1602 0.1776 0.1998 0.2271 0.2577 0.2881 0.3142 0.3333 0.3449 0.3510 0.3559 0.3644 0.3804 0.4052 0.4368 0.4705 0.5007 0.5231 0.5369 0.5456 0.5560 0.5760 0.6105 0.6590 0.7147 0.7676 0.8094 0.8392 0.8652 0.9011 0.9557 1.0232 1.0821 1.1093 1.1067 1.1123 1.1630 1.1891 - 0.1154 0.1337 0.1528 0.1760 0.2042 0.2355 0.2665 0.2932 0.3129 0.3250 0.3317 0.3369 0.3456 0.3616 0.3862 0.4176 0.4514 0.4821 0.5052 0.5198 0.5288 0.5388 0.5574 0.5898 0.6363 0.6911 0.7449 0.7890 0.8210 0.8470 0.8792 0.9279 0.9918 1.0543 1.0925 1.0986 1.0966 1.1298 1.2052 1.2074 - 0.1060 0.1271 0.1512 0.1799 0.2120 0.2439 0.2718 0.2927 0.3059 0.3132 0.3187 0.3271 0.3424 0.3663 0.3973 0.4313 0.4627 0.4872 0.5030 0.5127 0.5223 0.5392 0.5690 0.6129 0.6663 0.7204 0.7667 0.8012 0.8281 0.8581 0.9021 0.9621 1.0260 1.0725 1.0879 1.0847 1.1019 1.1702 1.2602 1.2275 - 0.1002 0.1252 0.1542 0.1868 0.2198 0.2494 0.2723 0.2872 0.2957 0.3014 0.3092 0.3233 0.3459 0.3759 0.4098 0.4422 0.4683 0.4860 0.4969 0.5063 0.5215 0.5485 0.5893 0.6406 0.6946 0.7426 0.7796 0.8078 0.8363 0.8762 0.9324 0.9968 1.0503 1.0754 1.0750 1.0805 1.1317 1.2317 1.3213 1.2486 - 0.0982 0.1273 0.1600 0.1940 0.2255 0.2510 0.2684 0.2788 0.2852 0.2923 0.3049 0.3254 0.3539 0.3872 0.4204 0.4483 0.4683 0.4808 0.4905 0.5041 0.5280 0.5654 0.6142 0.6678 0.7174 0.7570 0.7865 0.8136 0.8493 0.9010 0.9648 1.0245 1.0605 1.0667 1.0651 1.0972 1.1873 1.3045 1.3796 1.2698 - 0.0993 0.1318 0.1663 0.1997 0.2281 0.2489 0.2619 0.2697 0.2765 0.2873 0.3054 0.3316 0.3637 0.3973 0.4272 0.4497 0.4645 0.4747 0.4868 0.5073 0.5407 0.5864 0.6392 0.6907 0.7334 0.7652 0.7914 0.8225 0.8680 0.9288 0.9930 1.0405 1.0578 1.0550 1.0692 1.1389 1.2602 1.3729 1.4254 1.2902 - 0.1023 0.1370 0.1718 0.2031 0.2278 0.2445 0.2545 0.2617 0.2709 0.2861 0.3094 0.3396 0.3731 0.4048 0.4303 0.4478 0.4593 0.4700 0.4869 0.5153 0.5569 0.6080 0.6611 0.7078 0.7435 0.7704 0.7973 0.8354 0.8900 0.9550 1.0127 1.0444 1.0480 1.0495 1.0927 1.2003 1.3342 1.4197 1.4510 1.3092 - 0.1061 0.1418 0.1757 0.2045 0.2256 0.2391 0.2477 0.2558 0.2681 0.2877 0.3150 0.3475 0.3806 0.4094 0.4305 0.4443 0.4546 0.4678 0.4904 0.5261 0.5737 0.6272 0.6782 0.7195 0.7498 0.7749 0.8055 0.8512 0.9121 0.9760 1.0229 1.0400 1.0381 1.0555 1.1332 1.2688 1.3916 1.4325 1.4530 1.3261 - 0.1097 0.1456 0.1781 0.2043 0.2225 0.2340 0.2422 0.2520 0.2674 0.2907 0.3208 0.3543 0.3860 0.4116 0.4292 0.4408 0.4514 0.4680 0.4961 0.5375 0.5889 0.6427 0.6904 0.7270 0.7540 0.7798 0.8155 0.8675 0.9312 0.9902 1.0254 1.0320 1.0329 1.0728 1.1823 1.3298 1.4202 1.4083 1.4336 1.3404 - 0.1127 0.1483 0.1793 0.2033 0.2194 0.2297 0.2383 0.2499 0.2681 0.2940 0.3259 0.3593 0.3893 0.4122 0.4274 0.4379 0.4498 0.4697 0.5024 0.5478 0.6011 0.6540 0.6986 0.7317 0.7573 0.7851 0.8256 0.8821 0.9458 0.9983 1.0235 1.0246 1.0336 1.0966 1.2294 1.3733 1.4187 1.3562 1.4003 1.3517 - 0.1148 0.1500 0.1798 0.2021 0.2169 0.2267 0.2358 0.2489 0.2692 0.2969 0.3296 0.3626 0.3912 0.4122 0.4258 0.4360 0.4493 0.4720 0.5079 0.5558 0.6098 0.6614 0.7036 0.7345 0.7599 0.7900 0.8341 0.8931 0.9555 1.0022 1.0202 1.0195 1.0380 1.1198 1.2663 1.3975 1.3979 1.2947 1.3641 1.3599 - 0.1161 0.1509 0.1799 0.2013 0.2153 0.2249 0.2345 0.2486 0.2700 0.2987 0.3318 0.3645 0.3921 0.4119 0.4248 0.4350 0.4493 0.4737 0.5115 0.5608 0.6150 0.6656 0.7062 0.7361 0.7616 0.7934 0.8398 0.9000 0.9610 1.0037 1.0176 1.0170 1.0426 1.1362 1.2890 1.4074 1.3749 1.2459 1.3365 1.3649 - 0.1165 0.1511 0.1799 0.2009 0.2148 0.2243 0.2341 0.2485 0.2704 0.2994 0.3326 0.3651 0.3924 0.4118 0.4244 0.4347 0.4493 0.4744 0.5128 0.5624 0.6167 0.6670 0.7071 0.7366 0.7622 0.7946 0.8417 0.9022 0.9627 1.0040 1.0167 1.0162 1.0445 1.1422 1.2965 1.4096 1.3652 1.2273 1.3263 1.3665 - 0.1691 0.2140 0.2620 0.3090 0.3489 0.3767 0.3907 0.3937 0.3921 0.3931 0.4028 0.4236 0.4532 0.4856 0.5131 0.5297 0.5335 0.5279 0.5206 0.5204 0.5330 0.5582 0.5891 0.6149 0.6264 0.6220 0.6095 0.6038 0.6178 0.6534 0.6964 0.7250 0.7281 0.7222 0.7463 0.8223 0.9125 0.9587 1.0371 1.1577 - 0.1689 0.2141 0.2623 0.3092 0.3488 0.3761 0.3897 0.3925 0.3909 0.3923 0.4025 0.4236 0.4535 0.4858 0.5130 0.5291 0.5325 0.5268 0.5197 0.5200 0.5331 0.5586 0.5895 0.6149 0.6260 0.6212 0.6088 0.6034 0.6181 0.6539 0.6968 0.7249 0.7277 0.7221 0.7469 0.8234 0.9131 0.9589 1.0378 1.1575 - 0.1685 0.2146 0.2631 0.3098 0.3483 0.3742 0.3866 0.3889 0.3876 0.3899 0.4015 0.4239 0.4543 0.4863 0.5125 0.5273 0.5296 0.5236 0.5172 0.5187 0.5333 0.5598 0.5906 0.6150 0.6247 0.6190 0.6066 0.6025 0.6188 0.6555 0.6979 0.7246 0.7265 0.7218 0.7490 0.8268 0.9150 0.9593 1.0399 1.1570 - 0.1681 0.2156 0.2646 0.3105 0.3472 0.3708 0.3813 0.3829 0.3822 0.3864 0.4002 0.4245 0.4557 0.4871 0.5114 0.5240 0.5248 0.5184 0.5132 0.5170 0.5340 0.5618 0.5922 0.6149 0.6223 0.6152 0.6033 0.6013 0.6201 0.6582 0.6996 0.7240 0.7245 0.7216 0.7527 0.8323 0.9178 0.9600 1.0435 1.1561 - 0.1681 0.2173 0.2666 0.3110 0.3449 0.3654 0.3737 0.3746 0.3753 0.3822 0.3991 0.4258 0.4576 0.4877 0.5094 0.5190 0.5178 0.5114 0.5082 0.5152 0.5352 0.5645 0.5942 0.6142 0.6187 0.6100 0.5991 0.6002 0.6224 0.6618 0.7016 0.7226 0.7217 0.7217 0.7581 0.8398 0.9215 0.9612 1.0487 1.1549 - 0.1692 0.2199 0.2688 0.3108 0.3409 0.3577 0.3637 0.3646 0.3675 0.3781 0.3988 0.4278 0.4598 0.4877 0.5058 0.5120 0.5088 0.5030 0.5028 0.5139 0.5374 0.5679 0.5960 0.6125 0.6135 0.6035 0.5944 0.5998 0.6260 0.6664 0.7034 0.7204 0.7184 0.7226 0.7656 0.8493 0.9257 0.9628 1.0554 1.1533 - 0.1717 0.2233 0.2708 0.3090 0.3345 0.3473 0.3514 0.3534 0.3597 0.3749 0.3997 0.4307 0.4618 0.4864 0.5001 0.5025 0.4980 0.4939 0.4977 0.5137 0.5406 0.5715 0.5970 0.6091 0.6065 0.5960 0.5901 0.6008 0.6311 0.6716 0.7046 0.7170 0.7146 0.7248 0.7755 0.8602 0.9302 0.9653 1.0638 1.1513 - 0.1755 0.2270 0.2714 0.3047 0.3250 0.3342 0.3377 0.3421 0.3531 0.3736 0.4021 0.4340 0.4629 0.4830 0.4917 0.4908 0.4861 0.4851 0.4941 0.5152 0.5448 0.5748 0.5963 0.6034 0.5978 0.5881 0.5870 0.6038 0.6378 0.6770 0.7047 0.7123 0.7110 0.7290 0.7878 0.8723 0.9345 0.9690 1.0737 1.1491 - 0.1801 0.2297 0.2696 0.2970 0.3121 0.3189 0.3235 0.3321 0.3489 0.3745 0.4058 0.4369 0.4619 0.4764 0.4802 0.4772 0.4739 0.4777 0.4927 0.5185 0.5494 0.5769 0.5931 0.5952 0.5876 0.5807 0.5860 0.6093 0.6459 0.6820 0.7031 0.7065 0.7083 0.7359 0.8026 0.8847 0.9386 0.9742 1.0851 1.1466 - 0.1844 0.2302 0.2640 0.2853 0.2965 0.3028 0.3106 0.3250 0.3479 0.3778 0.4099 0.4381 0.4575 0.4662 0.4661 0.4627 0.4631 0.4730 0.4942 0.5235 0.5537 0.5765 0.5865 0.5843 0.5768 0.5751 0.5881 0.6174 0.6547 0.6856 0.6995 0.7001 0.7077 0.7462 0.8193 0.8969 0.9423 0.9817 1.0974 1.1440 - 0.1867 0.2268 0.2540 0.2700 0.2792 0.2877 0.3008 0.3218 0.3503 0.3824 0.4128 0.4360 0.4489 0.4523 0.4502 0.4491 0.4553 0.4721 0.4985 0.5291 0.5560 0.5726 0.5764 0.5714 0.5668 0.5723 0.5937 0.6277 0.6631 0.6870 0.6941 0.6944 0.7104 0.7602 0.8374 0.9078 0.9459 0.9918 1.1103 1.1414 - 0.1851 0.2186 0.2397 0.2525 0.2627 0.2758 0.2957 0.3230 0.3550 0.3866 0.4126 0.4291 0.4358 0.4357 0.4344 0.4383 0.4517 0.4752 0.5049 0.5339 0.5550 0.5643 0.5631 0.5582 0.5592 0.5737 0.6027 0.6389 0.6697 0.6855 0.6875 0.6910 0.7177 0.7779 0.8557 0.9168 0.9498 1.0050 1.1229 1.1391 - 0.1786 0.2055 0.2225 0.2352 0.2494 0.2692 0.2959 0.3277 0.3602 0.3880 0.4074 0.4170 0.4190 0.4184 0.4212 0.4322 0.4532 0.4816 0.5114 0.5357 0.5494 0.5519 0.5481 0.5466 0.5558 0.5796 0.6141 0.6491 0.6730 0.6811 0.6812 0.6917 0.7307 0.7988 0.8729 0.9236 0.9551 1.0214 1.1342 1.1373 - 0.1670 0.1891 0.2051 0.2211 0.2416 0.2685 0.3005 0.3336 0.3630 0.3845 0.3964 0.4004 0.4007 0.4031 0.4127 0.4318 0.4590 0.4892 0.5156 0.5328 0.5388 0.5367 0.5339 0.5391 0.5579 0.5895 0.6260 0.6563 0.6720 0.6747 0.6773 0.6986 0.7496 0.8215 0.8877 0.9284 0.9628 1.0408 1.1431 1.1364 - 0.1521 0.1723 0.1908 0.2127 0.2404 0.2729 0.3069 0.3376 0.3609 0.3747 0.3803 0.3816 0.3840 0.3927 0.4105 0.4367 0.4670 0.4951 0.5152 0.5243 0.5242 0.5212 0.5235 0.5378 0.5655 0.6016 0.6359 0.6587 0.6669 0.6681 0.6783 0.7127 0.7735 0.8439 0.8992 0.9324 0.9743 1.0623 1.1487 1.1367 - 0.1367 0.1585 0.1823 0.2112 0.2447 0.2798 0.3119 0.3368 0.3523 0.3594 0.3615 0.3641 0.3722 0.3890 0.4143 0.4447 0.4740 0.4965 0.5085 0.5107 0.5083 0.5088 0.5194 0.5432 0.5773 0.6132 0.6412 0.6555 0.6591 0.6643 0.6865 0.7342 0.8003 0.8640 0.9073 0.9375 0.9905 1.0844 1.1501 1.1386 - 0.1242 0.1506 0.1808 0.2155 0.2519 0.2855 0.3120 0.3293 0.3378 0.3409 0.3438 0.3515 0.3674 0.3920 0.4221 0.4522 0.4766 0.4912 0.4959 0.4947 0.4946 0.5027 0.5230 0.5544 0.5903 0.6213 0.6405 0.6478 0.6518 0.6664 0.7029 0.7612 0.8270 0.8800 0.9131 0.9461 1.0119 1.1049 1.1472 1.1426 - 0.1174 0.1496 0.1854 0.2230 0.2580 0.2864 0.3055 0.3156 0.3199 0.3232 0.3308 0.3462 0.3700 0.3996 0.4301 0.4557 0.4724 0.4794 0.4798 0.4799 0.4866 0.5045 0.5335 0.5685 0.6010 0.6237 0.6344 0.6387 0.6488 0.6767 0.7268 0.7907 0.8503 0.8913 0.9190 0.9604 1.0375 1.1215 1.1405 1.1491 - 0.1172 0.1544 0.1930 0.2295 0.2596 0.2806 0.2925 0.2983 0.3025 0.3103 0.3253 0.3484 0.3776 0.4080 0.4345 0.4527 0.4614 0.4634 0.4641 0.4702 0.4865 0.5137 0.5479 0.5813 0.6065 0.6200 0.6253 0.6325 0.6537 0.6959 0.7557 0.8185 0.8678 0.8989 0.9280 0.9818 1.0648 1.1317 1.1315 1.1585 - 0.1223 0.1622 0.1999 0.2316 0.2546 0.2685 0.2759 0.2813 0.2897 0.3046 0.3274 0.3561 0.3864 0.4133 0.4325 0.4426 0.4458 0.4472 0.4530 0.4682 0.4942 0.5277 0.5618 0.5892 0.6054 0.6122 0.6177 0.6335 0.6684 0.7224 0.7853 0.8410 0.8790 0.9057 0.9430 1.0094 1.0902 1.1341 1.1231 1.1708 - 0.1299 0.1692 0.2026 0.2275 0.2435 0.2528 0.2596 0.2687 0.2839 0.3065 0.3349 0.3651 0.3923 0.4124 0.4237 0.4279 0.4298 0.4353 0.4495 0.4743 0.5071 0.5418 0.5713 0.5903 0.5991 0.6043 0.6163 0.6446 0.6922 0.7525 0.8114 0.8563 0.8859 0.9153 0.9655 1.0405 1.1095 1.1291 1.1185 1.1863 - 0.1367 0.1723 0.1994 0.2177 0.2290 0.2373 0.2474 0.2629 0.2854 0.3136 0.3439 0.3715 0.3924 0.4048 0.4100 0.4124 0.4176 0.4308 0.4542 0.4861 0.5210 0.5520 0.5737 0.5851 0.5911 0.6009 0.6242 0.6658 0.7219 0.7814 0.8309 0.8651 0.8923 0.9312 0.9947 1.0701 1.1193 1.1191 1.1219 1.2047 - 0.1399 0.1700 0.1908 0.2045 0.2146 0.2256 0.2416 0.2640 0.2921 0.3224 0.3505 0.3723 0.3859 0.3922 0.3952 0.4003 0.4125 0.4345 0.4651 0.4997 0.5318 0.5556 0.5695 0.5770 0.5860 0.6058 0.6423 0.6942 0.7526 0.8049 0.8433 0.8710 0.9028 0.9548 1.0269 1.0928 1.1184 1.1090 1.1366 1.2258 - 0.1383 0.1627 0.1791 0.1912 0.2035 0.2199 0.2423 0.2702 0.3006 0.3291 0.3519 0.3668 0.3744 0.3782 0.3833 0.3947 0.4153 0.4446 0.4786 0.5111 0.5366 0.5526 0.5616 0.5703 0.5877 0.6202 0.6683 0.7251 0.7793 0.8213 0.8508 0.8784 0.9205 0.9846 1.0564 1.1042 1.1091 1.1053 1.1650 1.2491 - 0.1325 0.1525 0.1670 0.1807 0.1977 0.2201 0.2479 0.2784 0.3075 0.3313 0.3475 0.3564 0.3611 0.3663 0.3770 0.3964 0.4244 0.4577 0.4905 0.5174 0.5352 0.5455 0.5540 0.5692 0.5981 0.6425 0.6977 0.7533 0.7991 0.8315 0.8574 0.8917 0.9461 1.0162 1.0777 1.1031 1.0972 1.1148 1.2073 1.2738 - 0.1240 0.1418 0.1572 0.1748 0.1973 0.2250 0.2556 0.2855 0.3105 0.3283 0.3386 0.3441 0.3493 0.3592 0.3772 0.4039 0.4366 0.4699 0.4982 0.5180 0.5296 0.5380 0.5509 0.5759 0.6163 0.6692 0.7256 0.7751 0.8117 0.8385 0.8676 0.9127 0.9766 1.0437 1.0868 1.0929 1.0910 1.1422 1.2606 1.2991 - 0.1149 0.1328 0.1511 0.1735 0.2011 0.2320 0.2628 0.2894 0.3091 0.3211 0.3276 0.3327 0.3415 0.3579 0.3829 0.4147 0.4485 0.4785 0.5006 0.5141 0.5228 0.5337 0.5546 0.5903 0.6397 0.6957 0.7483 0.7895 0.8192 0.8462 0.8839 0.9400 1.0071 1.0622 1.0842 1.0804 1.0987 1.1885 1.3194 1.3242 - 0.1070 0.1267 0.1489 0.1760 0.2071 0.2389 0.2675 0.2896 0.3038 0.3117 0.3170 0.3245 0.3387 0.3615 0.3919 0.4258 0.4576 0.4824 0.4986 0.5083 0.5179 0.5349 0.5653 0.6101 0.6642 0.7186 0.7642 0.7979 0.8250 0.8577 0.9062 0.9699 1.0321 1.0693 1.0739 1.0745 1.1258 1.2492 1.3760 1.3482 - 0.1013 0.1238 0.1501 0.1807 0.2134 0.2441 0.2692 0.2864 0.2964 0.3022 0.3086 0.3203 0.3403 0.3685 0.4018 0.4349 0.4627 0.4821 0.4939 0.5031 0.5169 0.5420 0.5813 0.6322 0.6868 0.7359 0.7739 0.8028 0.8322 0.8738 0.9321 0.9974 1.0479 1.0664 1.0630 1.0827 1.1722 1.3150 1.4215 1.3703 - 0.0979 0.1236 0.1533 0.1861 0.2187 0.2470 0.2680 0.2810 0.2883 0.2942 0.3034 0.3200 0.3451 0.3768 0.4106 0.4411 0.4641 0.4789 0.4888 0.5002 0.5203 0.5537 0.6000 0.6535 0.7052 0.7477 0.7794 0.8071 0.8422 0.8934 0.9580 1.0187 1.0539 1.0578 1.0586 1.1082 1.2318 1.3736 1.4482 1.3899 - 0.0967 0.1253 0.1574 0.1911 0.2225 0.2476 0.2648 0.2748 0.2810 0.2883 0.3013 0.3224 0.3514 0.3848 0.4174 0.4442 0.4628 0.4746 0.4847 0.5002 0.5273 0.5680 0.6188 0.6721 0.7191 0.7551 0.7829 0.8125 0.8550 0.9143 0.9803 1.0319 1.0520 1.0490 1.0651 1.1489 1.2943 1.4130 1.4516 1.4067 - 0.0970 0.1279 0.1616 0.1951 0.2245 0.2466 0.2607 0.2688 0.2752 0.2848 0.3015 0.3265 0.3580 0.3916 0.4219 0.4450 0.4600 0.4703 0.4823 0.5028 0.5364 0.5827 0.6358 0.6869 0.7287 0.7597 0.7861 0.8196 0.8693 0.9337 0.9972 1.0377 1.0459 1.0441 1.0828 1.1980 1.3486 1.4257 1.4313 1.4205 - 0.0981 0.1307 0.1651 0.1979 0.2252 0.2447 0.2565 0.2637 0.2709 0.2831 0.3030 0.3310 0.3639 0.3968 0.4245 0.4443 0.4569 0.4670 0.4816 0.5070 0.5461 0.5961 0.6496 0.6979 0.7351 0.7627 0.7896 0.8276 0.8833 0.9500 1.0083 1.0381 1.0389 1.0448 1.1084 1.2471 1.3865 1.4110 1.3923 1.4312 - 0.0995 0.1333 0.1678 0.1997 0.2251 0.2425 0.2528 0.2597 0.2682 0.2826 0.3052 0.3351 0.3685 0.4003 0.4258 0.4430 0.4541 0.4648 0.4821 0.5117 0.5547 0.6070 0.6602 0.7056 0.7393 0.7650 0.7933 0.8356 0.8954 0.9622 1.0146 1.0357 1.0334 1.0501 1.1362 1.2888 1.4060 1.3765 1.3436 1.4391 - 0.1008 0.1352 0.1697 0.2006 0.2247 0.2406 0.2500 0.2570 0.2665 0.2827 0.3071 0.3383 0.3718 0.4026 0.4262 0.4417 0.4521 0.4635 0.4831 0.5157 0.5615 0.6150 0.6674 0.7105 0.7419 0.7668 0.7967 0.8422 0.9045 0.9703 1.0176 1.0326 1.0301 1.0572 1.1604 1.3189 1.4111 1.3353 1.2970 1.4445 - 0.1016 0.1363 0.1707 0.2011 0.2243 0.2394 0.2483 0.2555 0.2657 0.2830 0.3085 0.3402 0.3738 0.4038 0.4263 0.4409 0.4509 0.4629 0.4840 0.5185 0.5658 0.6198 0.6715 0.7133 0.7433 0.7680 0.7991 0.8466 0.9101 0.9749 1.0188 1.0304 1.0285 1.0630 1.1765 1.3364 1.4093 1.3027 1.2635 1.4476 - 0.1019 0.1367 0.1711 0.2013 0.2241 0.2390 0.2478 0.2550 0.2655 0.2831 0.3089 0.3409 0.3744 0.4041 0.4263 0.4406 0.4505 0.4628 0.4843 0.5195 0.5672 0.6214 0.6729 0.7141 0.7437 0.7684 0.7999 0.8481 0.9120 0.9763 1.0191 1.0295 1.0281 1.0653 1.1822 1.3421 1.4077 1.2903 1.2513 1.4486 - 0.1700 0.2211 0.2675 0.3043 0.3284 0.3402 0.3441 0.3466 0.3540 0.3704 0.3960 0.4268 0.4568 0.4796 0.4915 0.4929 0.4887 0.4863 0.4925 0.5106 0.5382 0.5680 0.5910 0.6004 0.5967 0.5876 0.5855 0.6004 0.6327 0.6713 0.6995 0.7087 0.7096 0.7299 0.7900 0.8732 0.9335 0.9742 1.0864 1.1323 - 0.1703 0.2214 0.2675 0.3041 0.3278 0.3393 0.3431 0.3457 0.3535 0.3703 0.3961 0.4271 0.4569 0.4794 0.4909 0.4921 0.4879 0.4857 0.4922 0.5107 0.5385 0.5683 0.5909 0.6000 0.5960 0.5870 0.5853 0.6007 0.6332 0.6717 0.6995 0.7083 0.7094 0.7302 0.7909 0.8740 0.9338 0.9746 1.0871 1.1323 - 0.1711 0.2221 0.2678 0.3033 0.3259 0.3366 0.3402 0.3433 0.3521 0.3700 0.3967 0.4278 0.4572 0.4787 0.4892 0.4897 0.4854 0.4838 0.4915 0.5110 0.5394 0.5690 0.5907 0.5988 0.5942 0.5854 0.5848 0.6014 0.6347 0.6727 0.6994 0.7073 0.7087 0.7313 0.7936 0.8764 0.9346 0.9757 1.0892 1.1323 - 0.1724 0.2234 0.2679 0.3017 0.3225 0.3321 0.3355 0.3396 0.3500 0.3698 0.3976 0.4290 0.4574 0.4773 0.4861 0.4855 0.4813 0.4810 0.4905 0.5117 0.5409 0.5700 0.5903 0.5966 0.5911 0.5829 0.5841 0.6029 0.6372 0.6744 0.6990 0.7055 0.7078 0.7334 0.7981 0.8802 0.9359 0.9776 1.0926 1.1322 - 0.1744 0.2249 0.2678 0.2990 0.3175 0.3257 0.3292 0.3348 0.3477 0.3698 0.3991 0.4304 0.4574 0.4750 0.4815 0.4798 0.4760 0.4775 0.4896 0.5130 0.5430 0.5711 0.5891 0.5932 0.5868 0.5797 0.5837 0.6052 0.6406 0.6765 0.6983 0.7030 0.7068 0.7366 0.8045 0.8853 0.9375 0.9805 1.0972 1.1322 - 0.1769 0.2265 0.2668 0.2949 0.3106 0.3175 0.3217 0.3296 0.3456 0.3705 0.4012 0.4320 0.4567 0.4713 0.4752 0.4725 0.4697 0.4739 0.4892 0.5150 0.5454 0.5719 0.5870 0.5885 0.5814 0.5762 0.5838 0.6087 0.6450 0.6787 0.6969 0.6998 0.7060 0.7413 0.8127 0.8913 0.9394 0.9846 1.1030 1.1324 - 0.1798 0.2275 0.2645 0.2888 0.3017 0.3078 0.3135 0.3246 0.3444 0.3721 0.4037 0.4331 0.4548 0.4658 0.4672 0.4639 0.4630 0.4707 0.4898 0.5178 0.5480 0.5719 0.5834 0.5822 0.5751 0.5729 0.5851 0.6135 0.6502 0.6807 0.6946 0.6962 0.7061 0.7478 0.8226 0.8979 0.9415 0.9900 1.1097 1.1327 - 0.1825 0.2274 0.2601 0.2804 0.2910 0.2972 0.3055 0.3207 0.3444 0.3746 0.4062 0.4333 0.4510 0.4582 0.4574 0.4546 0.4566 0.4687 0.4916 0.5213 0.5503 0.5705 0.5779 0.5745 0.5684 0.5704 0.5879 0.6198 0.6557 0.6820 0.6914 0.6924 0.7075 0.7565 0.8338 0.9045 0.9439 0.9972 1.1170 1.1334 - 0.1843 0.2253 0.2533 0.2698 0.2788 0.2865 0.2986 0.3185 0.3461 0.3779 0.4082 0.4317 0.4449 0.4483 0.4463 0.4452 0.4515 0.4684 0.4949 0.5252 0.5515 0.5672 0.5703 0.5655 0.5619 0.5694 0.5926 0.6272 0.6611 0.6821 0.6872 0.6892 0.7110 0.7675 0.8461 0.9108 0.9467 1.0062 1.1245 1.1346 - 0.1843 0.2204 0.2437 0.2572 0.2662 0.2769 0.2937 0.3185 0.3492 0.3812 0.4088 0.4274 0.4359 0.4364 0.4346 0.4369 0.4484 0.4703 0.4994 0.5288 0.5509 0.5613 0.5607 0.5558 0.5565 0.5706 0.5993 0.6353 0.6657 0.6808 0.6825 0.6874 0.7174 0.7810 0.8588 0.9163 0.9501 1.0175 1.1317 1.1364 - 0.1816 0.2124 0.2315 0.2435 0.2544 0.2695 0.2918 0.3209 0.3533 0.3836 0.4067 0.4200 0.4241 0.4232 0.4235 0.4308 0.4481 0.4744 0.5045 0.5310 0.5478 0.5527 0.5495 0.5466 0.5531 0.5744 0.6078 0.6433 0.6686 0.6777 0.6778 0.6880 0.7273 0.7965 0.8711 0.9208 0.9548 1.0309 1.1380 1.1392 - 0.1756 0.2014 0.2176 0.2302 0.2448 0.2655 0.2930 0.3251 0.3571 0.3837 0.4012 0.4091 0.4102 0.4100 0.4143 0.4277 0.4508 0.4801 0.5091 0.5309 0.5415 0.5417 0.5379 0.5390 0.5528 0.5808 0.6171 0.6500 0.6691 0.6732 0.6743 0.6922 0.7410 0.8137 0.8823 0.9245 0.9613 1.0463 1.1426 1.1432 - 0.1661 0.1881 0.2035 0.2189 0.2388 0.2653 0.2970 0.3299 0.3591 0.3803 0.3918 0.3954 0.3955 0.3982 0.4084 0.4283 0.4561 0.4862 0.5118 0.5275 0.5320 0.5292 0.5272 0.5345 0.5560 0.5896 0.6261 0.6542 0.6668 0.6680 0.6733 0.7010 0.7585 0.8315 0.8918 0.9276 0.9704 1.0631 1.1451 1.1487 - 0.1541 0.1741 0.1912 0.2113 0.2372 0.2686 0.3023 0.3335 0.3577 0.3726 0.3787 0.3799 0.3818 0.3896 0.4066 0.4324 0.4627 0.4910 0.5111 0.5202 0.5199 0.5167 0.5192 0.5342 0.5628 0.5994 0.6334 0.6550 0.6619 0.6633 0.6761 0.7150 0.7791 0.8487 0.8992 0.9312 0.9827 1.0806 1.1448 1.1559 - 0.1410 0.1614 0.1824 0.2083 0.2397 0.2741 0.3071 0.3340 0.3520 0.3608 0.3634 0.3649 0.3710 0.3855 0.4091 0.4388 0.4688 0.4927 0.5062 0.5093 0.5067 0.5063 0.5156 0.5385 0.5725 0.6089 0.6375 0.6520 0.6555 0.6608 0.6842 0.7340 0.8015 0.8641 0.9048 0.9364 0.9986 1.0974 1.1417 1.1651 - 0.1290 0.1521 0.1784 0.2100 0.2451 0.2797 0.3092 0.3301 0.3416 0.3459 0.3477 0.3525 0.3648 0.3862 0.4148 0.4456 0.4723 0.4899 0.4969 0.4962 0.4946 0.4998 0.5174 0.5472 0.5833 0.6161 0.6374 0.6457 0.6492 0.6625 0.6982 0.7569 0.8236 0.8767 0.9093 0.9449 1.0180 1.1121 1.1360 1.1767 - 0.1199 0.1476 0.1794 0.2151 0.2512 0.2832 0.3070 0.3213 0.3276 0.3301 0.3342 0.3447 0.3640 0.3911 0.4219 0.4506 0.4715 0.4822 0.4841 0.4828 0.4857 0.4989 0.5245 0.5587 0.5933 0.6195 0.6331 0.6379 0.6456 0.6699 0.7178 0.7819 0.8435 0.8861 0.9144 0.9579 1.0400 1.1230 1.1285 1.1906 - 0.1154 0.1480 0.1842 0.2216 0.2557 0.2825 0.2998 0.3085 0.3121 0.3160 0.3251 0.3425 0.3680 0.3983 0.4280 0.4515 0.4655 0.4702 0.4701 0.4718 0.4819 0.5038 0.5356 0.5706 0.6003 0.6185 0.6259 0.6310 0.6469 0.6839 0.7415 0.8064 0.8596 0.8930 0.9218 0.9762 1.0629 1.1288 1.1210 1.2071 - 0.1157 0.1526 0.1909 0.2269 0.2564 0.2768 0.2881 0.2935 0.2977 0.3060 0.3217 0.3456 0.3751 0.4052 0.4306 0.4473 0.4547 0.4561 0.4574 0.4654 0.4842 0.5135 0.5483 0.5804 0.6028 0.6135 0.6181 0.6280 0.6551 0.7039 0.7670 0.8277 0.8711 0.8989 0.9336 0.9994 1.0843 1.1288 1.1155 1.2260 - 0.1199 0.1593 0.1969 0.2289 0.2523 0.2666 0.2739 0.2790 0.2869 0.3014 0.3238 0.3524 0.3827 0.4094 0.4284 0.4382 0.4411 0.4425 0.4487 0.4649 0.4918 0.5259 0.5598 0.5860 0.6006 0.6064 0.6127 0.6314 0.6706 0.7281 0.7915 0.8442 0.8786 0.9060 0.9510 1.0259 1.1015 1.1234 1.1148 1.2472 - 0.1262 0.1656 0.2000 0.2264 0.2437 0.2534 0.2598 0.2677 0.2812 0.3024 0.3300 0.3602 0.3881 0.4090 0.4211 0.4256 0.4273 0.4322 0.4458 0.4702 0.5030 0.5380 0.5675 0.5863 0.5948 0.5999 0.6126 0.6426 0.6924 0.7539 0.8123 0.8551 0.8839 0.9166 0.9739 1.0527 1.1120 1.1145 1.1217 1.2703 - 0.1326 0.1696 0.1990 0.2195 0.2319 0.2399 0.2481 0.2611 0.2810 0.3077 0.3377 0.3665 0.3893 0.4037 0.4100 0.4122 0.4161 0.4273 0.4489 0.4798 0.5150 0.5471 0.5700 0.5822 0.5880 0.5971 0.6197 0.6612 0.7181 0.7782 0.8278 0.8617 0.8898 0.9324 1.0009 1.0762 1.1146 1.1053 1.1385 1.2947 - 0.1370 0.1700 0.1938 0.2093 0.2193 0.2283 0.2408 0.2597 0.2853 0.3150 0.3445 0.3691 0.3858 0.3942 0.3974 0.4007 0.4098 0.4285 0.4570 0.4914 0.5250 0.5514 0.5675 0.5754 0.5830 0.6002 0.6343 0.6853 0.7443 0.7984 0.8381 0.8664 0.8992 0.9539 1.0288 1.0929 1.1097 1.1002 1.1668 1.3197 - 0.1383 0.1664 0.1854 0.1979 0.2081 0.2204 0.2383 0.2628 0.2920 0.3220 0.3482 0.3672 0.3780 0.3827 0.3859 0.3933 0.4093 0.4350 0.4679 0.5021 0.5312 0.5508 0.5614 0.5689 0.5824 0.6102 0.6551 0.7116 0.7681 0.8133 0.8446 0.8722 0.9140 0.9795 1.0538 1.1004 1.1002 1.1039 1.2064 1.3446 - 0.1363 0.1598 0.1755 0.1873 0.1999 0.2170 0.2402 0.2686 0.2989 0.3266 0.3479 0.3612 0.3676 0.3713 0.3775 0.3909 0.4139 0.4449 0.4790 0.5100 0.5328 0.5462 0.5543 0.5652 0.5876 0.6264 0.6793 0.7368 0.7871 0.8233 0.8499 0.8818 0.9344 1.0063 1.0721 1.0986 1.0907 1.1204 1.2552 1.3685 - 0.1315 0.1515 0.1657 0.1790 0.1955 0.2175 0.2451 0.2754 0.3043 0.3279 0.3438 0.3523 0.3568 0.3621 0.3733 0.3934 0.4222 0.4557 0.4882 0.5139 0.5304 0.5398 0.5489 0.5664 0.5988 0.6468 0.7037 0.7583 0.8007 0.8301 0.8567 0.8968 0.9588 1.0307 1.0814 1.0901 1.0866 1.1516 1.3091 1.3905 - 0.1250 0.1429 0.1575 0.1737 0.1946 0.2211 0.2512 0.2812 0.3070 0.3257 0.3368 0.3425 0.3473 0.3564 0.3735 0.3996 0.4320 0.4655 0.4941 0.5140 0.5256 0.5339 0.5471 0.5729 0.6146 0.6688 0.7257 0.7745 0.8096 0.8358 0.8670 0.9167 0.9845 1.0493 1.0818 1.0791 1.0932 1.1966 1.3620 1.4100 - 0.1180 0.1353 0.1517 0.1715 0.1967 0.2262 0.2571 0.2851 0.3069 0.3209 0.3284 0.3332 0.3404 0.3544 0.3773 0.4078 0.4416 0.4728 0.4965 0.5113 0.5202 0.5303 0.5497 0.5841 0.6331 0.6897 0.7434 0.7855 0.8155 0.8427 0.8815 0.9399 1.0082 1.0603 1.0754 1.0713 1.1134 1.2510 1.4073 1.4265 - 0.1114 0.1293 0.1483 0.1719 0.2004 0.2316 0.2617 0.2867 0.3043 0.3144 0.3201 0.3258 0.3366 0.3557 0.3833 0.4163 0.4495 0.4771 0.4960 0.5072 0.5159 0.5300 0.5567 0.5985 0.6519 0.7079 0.7564 0.7924 0.8202 0.8517 0.8993 0.9635 1.0270 1.0637 1.0659 1.0711 1.1470 1.3080 1.4384 1.4395 - 0.1059 0.1252 0.1472 0.1740 0.2048 0.2364 0.2647 0.2862 0.3000 0.3075 0.3128 0.3207 0.3356 0.3592 0.3902 0.4240 0.4550 0.4786 0.4936 0.5030 0.5136 0.5331 0.5668 0.6143 0.6694 0.7223 0.7651 0.7967 0.8251 0.8632 0.9188 0.9851 1.0396 1.0611 1.0576 1.0812 1.1908 1.3592 1.4504 1.4490 - 0.1017 0.1229 0.1476 0.1770 0.2091 0.2401 0.2659 0.2842 0.2950 0.3011 0.3071 0.3179 0.3368 0.3640 0.3969 0.4300 0.4582 0.4780 0.4902 0.4996 0.5136 0.5389 0.5786 0.6297 0.6843 0.7330 0.7705 0.7997 0.8310 0.8763 0.9380 1.0026 1.0461 1.0553 1.0535 1.1013 1.2389 1.3974 1.4416 1.4552 - 0.0989 0.1220 0.1491 0.1803 0.2128 0.2425 0.2659 0.2813 0.2900 0.2957 0.3032 0.3170 0.3393 0.3691 0.4027 0.4344 0.4595 0.4763 0.4869 0.4975 0.5154 0.5462 0.5906 0.6436 0.6963 0.7405 0.7738 0.8024 0.8379 0.8897 0.9550 1.0154 1.0479 1.0488 1.0550 1.1286 1.2848 1.4181 1.4135 1.4587 - 0.0971 0.1219 0.1509 0.1832 0.2156 0.2439 0.2650 0.2782 0.2856 0.2915 0.3007 0.3172 0.3423 0.3738 0.4073 0.4372 0.4596 0.4740 0.4841 0.4966 0.5184 0.5539 0.6016 0.6551 0.7053 0.7455 0.7760 0.8052 0.8451 0.9022 0.9689 1.0237 1.0466 1.0436 1.0616 1.1586 1.3234 1.4212 1.3717 1.4601 - 0.0962 0.1224 0.1526 0.1856 0.2176 0.2445 0.2638 0.2754 0.2821 0.2885 0.2994 0.3182 0.3452 0.3777 0.4106 0.4388 0.4590 0.4719 0.4821 0.4965 0.5218 0.5608 0.6108 0.6640 0.7117 0.7487 0.7775 0.8080 0.8518 0.9127 0.9792 1.0285 1.0440 1.0404 1.0709 1.1868 1.3517 1.4110 1.3245 1.4601 - 0.0957 0.1229 0.1541 0.1873 0.2189 0.2447 0.2627 0.2732 0.2796 0.2865 0.2988 0.3192 0.3475 0.3805 0.4129 0.4396 0.4583 0.4702 0.4807 0.4969 0.5248 0.5663 0.6175 0.6703 0.7160 0.7507 0.7785 0.8104 0.8572 0.9204 0.9862 1.0309 1.0415 1.0390 1.0803 1.2093 1.3697 1.3948 1.2813 1.4594 - 0.0955 0.1234 0.1550 0.1884 0.2195 0.2447 0.2619 0.2718 0.2781 0.2855 0.2986 0.3200 0.3490 0.3822 0.4141 0.4400 0.4577 0.4692 0.4800 0.4973 0.5269 0.5698 0.6216 0.6739 0.7184 0.7518 0.7792 0.8121 0.8607 0.9252 0.9901 1.0319 1.0397 1.0386 1.0871 1.2236 1.3792 1.3809 1.2513 1.4587 - 0.0955 0.1235 0.1553 0.1887 0.2198 0.2447 0.2616 0.2713 0.2776 0.2851 0.2985 0.3203 0.3496 0.3828 0.4145 0.4401 0.4575 0.4688 0.4798 0.4975 0.5276 0.5710 0.6230 0.6751 0.7191 0.7521 0.7795 0.8126 0.8619 0.9268 0.9914 1.0321 1.0391 1.0386 1.0896 1.2285 1.3821 1.3754 1.2405 1.4585 - 0.1799 0.2253 0.2589 0.2798 0.2906 0.2966 0.3043 0.3187 0.3417 0.3712 0.4025 0.4293 0.4470 0.4542 0.4537 0.4513 0.4538 0.4663 0.4893 0.5186 0.5465 0.5654 0.5719 0.5686 0.5640 0.5684 0.5880 0.6203 0.6544 0.6772 0.6844 0.6871 0.7083 0.7636 0.8413 0.9056 0.9441 1.0127 1.1256 1.1438 - 0.1801 0.2253 0.2586 0.2793 0.2899 0.2960 0.3038 0.3185 0.3417 0.3714 0.4026 0.4293 0.4467 0.4537 0.4530 0.4507 0.4535 0.4662 0.4895 0.5188 0.5466 0.5653 0.5715 0.5681 0.5636 0.5683 0.5882 0.6207 0.6547 0.6773 0.6841 0.6869 0.7085 0.7643 0.8421 0.9060 0.9443 1.0133 1.1259 1.1441 - 0.1806 0.2252 0.2576 0.2775 0.2878 0.2939 0.3023 0.3178 0.3418 0.3720 0.4031 0.4291 0.4458 0.4521 0.4511 0.4489 0.4524 0.4660 0.4900 0.5195 0.5469 0.5648 0.5703 0.5665 0.5624 0.5680 0.5890 0.6220 0.6557 0.6773 0.6834 0.6864 0.7091 0.7662 0.8442 0.9070 0.9450 1.0151 1.1270 1.1452 - 0.1813 0.2248 0.2558 0.2745 0.2842 0.2906 0.3001 0.3169 0.3422 0.3729 0.4037 0.4288 0.4441 0.4493 0.4478 0.4461 0.4507 0.4658 0.4908 0.5206 0.5473 0.5639 0.5681 0.5639 0.5605 0.5678 0.5904 0.6242 0.6572 0.6773 0.6823 0.6856 0.7104 0.7696 0.8476 0.9087 0.9460 1.0181 1.1287 1.1469 - 0.1821 0.2240 0.2530 0.2702 0.2792 0.2862 0.2973 0.3161 0.3429 0.3742 0.4045 0.4281 0.4415 0.4452 0.4433 0.4424 0.4488 0.4659 0.4922 0.5221 0.5476 0.5623 0.5649 0.5603 0.5581 0.5677 0.5925 0.6272 0.6592 0.6771 0.6806 0.6848 0.7124 0.7743 0.8522 0.9108 0.9475 1.0224 1.1309 1.1494 - 0.1827 0.2224 0.2490 0.2644 0.2730 0.2811 0.2943 0.3155 0.3441 0.3759 0.4051 0.4266 0.4378 0.4398 0.4377 0.4382 0.4469 0.4664 0.4942 0.5238 0.5476 0.5598 0.5606 0.5558 0.5555 0.5680 0.5955 0.6309 0.6613 0.6766 0.6785 0.6841 0.7156 0.7806 0.8579 0.9132 0.9495 1.0280 1.1333 1.1528 - 0.1828 0.2197 0.2436 0.2573 0.2659 0.2757 0.2916 0.3156 0.3458 0.3777 0.4053 0.4241 0.4326 0.4331 0.4313 0.4337 0.4455 0.4677 0.4967 0.5256 0.5469 0.5562 0.5550 0.5506 0.5529 0.5692 0.5995 0.6353 0.6634 0.6755 0.6761 0.6840 0.7202 0.7884 0.8643 0.9157 0.9522 1.0351 1.1358 1.1571 - 0.1819 0.2156 0.2366 0.2489 0.2582 0.2705 0.2897 0.3166 0.3482 0.3794 0.4046 0.4201 0.4258 0.4252 0.4243 0.4296 0.4449 0.4699 0.4997 0.5271 0.5452 0.5512 0.5484 0.5450 0.5508 0.5714 0.6045 0.6400 0.6651 0.6737 0.6736 0.6848 0.7266 0.7978 0.8712 0.9181 0.9558 1.0436 1.1380 1.1625 - 0.1796 0.2097 0.2281 0.2397 0.2506 0.2661 0.2890 0.3186 0.3509 0.3805 0.4025 0.4144 0.4175 0.4163 0.4174 0.4263 0.4455 0.4731 0.5030 0.5279 0.5421 0.5447 0.5408 0.5395 0.5497 0.5749 0.6104 0.6446 0.6659 0.6711 0.6713 0.6873 0.7351 0.8085 0.8781 0.9204 0.9605 1.0535 1.1396 1.1691 - 0.1756 0.2020 0.2183 0.2302 0.2438 0.2632 0.2898 0.3215 0.3536 0.3805 0.3985 0.4066 0.4076 0.4071 0.4112 0.4245 0.4477 0.4771 0.5060 0.5274 0.5372 0.5368 0.5328 0.5348 0.5501 0.5799 0.6168 0.6487 0.6655 0.6679 0.6697 0.6918 0.7459 0.8203 0.8847 0.9226 0.9666 1.0645 1.1402 1.1770 - 0.1694 0.1926 0.2078 0.2213 0.2384 0.2622 0.2922 0.3251 0.3555 0.3787 0.3922 0.3969 0.3969 0.3982 0.4064 0.4245 0.4513 0.4815 0.5082 0.5251 0.5305 0.5278 0.5250 0.5315 0.5525 0.5861 0.6232 0.6515 0.6637 0.6643 0.6696 0.6991 0.7590 0.8327 0.8907 0.9250 0.9745 1.0764 1.1396 1.1864 - 0.1613 0.1820 0.1974 0.2137 0.2353 0.2634 0.2959 0.3284 0.3559 0.3745 0.3836 0.3856 0.3859 0.3905 0.4037 0.4266 0.4560 0.4857 0.5087 0.5206 0.5219 0.5182 0.5184 0.5303 0.5569 0.5934 0.6289 0.6525 0.6604 0.6608 0.6718 0.7095 0.7743 0.8452 0.8958 0.9279 0.9846 1.0886 1.1375 1.1973 - 0.1516 0.1711 0.1882 0.2085 0.2348 0.2665 0.3001 0.3308 0.3540 0.3676 0.3727 0.3735 0.3758 0.3849 0.4035 0.4306 0.4612 0.4886 0.5069 0.5137 0.5121 0.5091 0.5137 0.5319 0.5634 0.6009 0.6331 0.6513 0.6558 0.6584 0.6770 0.7233 0.7912 0.8570 0.9000 0.9320 0.9970 1.1004 1.1339 1.2100 - 0.1411 0.1610 0.1812 0.2061 0.2368 0.2709 0.3039 0.3310 0.3491 0.3579 0.3604 0.3617 0.3676 0.3821 0.4059 0.4358 0.4658 0.4894 0.5022 0.5046 0.5017 0.5016 0.5120 0.5364 0.5714 0.6078 0.6351 0.6478 0.6506 0.6579 0.6857 0.7401 0.8088 0.8676 0.9036 0.9380 1.0118 1.1109 1.1289 1.2245 - 0.1310 0.1527 0.1771 0.2068 0.2409 0.2756 0.3061 0.3285 0.3412 0.3461 0.3476 0.3514 0.3623 0.3825 0.4105 0.4414 0.4688 0.4872 0.4947 0.4940 0.4920 0.4967 0.5138 0.5437 0.5801 0.6131 0.6343 0.6423 0.6459 0.6604 0.6984 0.7593 0.8260 0.8765 0.9072 0.9468 1.0286 1.1192 1.1231 1.2407 - 0.1225 0.1474 0.1764 0.2102 0.2460 0.2793 0.3056 0.3226 0.3306 0.3333 0.3359 0.3439 0.3605 0.3858 0.4162 0.4459 0.4689 0.4817 0.4847 0.4831 0.4843 0.4953 0.5192 0.5529 0.5883 0.6160 0.6307 0.6358 0.6429 0.6668 0.7148 0.7798 0.8418 0.8836 0.9117 0.9590 1.0468 1.1245 1.1174 1.2586 - 0.1165 0.1455 0.1788 0.2152 0.2507 0.2807 0.3018 0.3135 0.3182 0.3207 0.3266 0.3399 0.3622 0.3911 0.4218 0.4482 0.4656 0.4730 0.4733 0.4731 0.4797 0.4980 0.5276 0.5628 0.5948 0.6159 0.6250 0.6297 0.6432 0.6776 0.7341 0.8000 0.8550 0.8892 0.9183 0.9750 1.0650 1.1260 1.1130 1.2780 - 0.1138 0.1470 0.1835 0.2205 0.2537 0.2789 0.2945 0.3020 0.3054 0.3100 0.3207 0.3399 0.3668 0.3973 0.4259 0.4472 0.4588 0.4619 0.4619 0.4656 0.4791 0.5043 0.5379 0.5721 0.5985 0.6129 0.6184 0.6256 0.6479 0.6927 0.7551 0.8185 0.8653 0.8942 0.9280 0.9944 1.0820 1.1237 1.1116 1.2986 - 0.1144 0.1511 0.1891 0.2247 0.2538 0.2736 0.2844 0.2895 0.2938 0.3025 0.3189 0.3433 0.3730 0.4028 0.4272 0.4426 0.4490 0.4500 0.4521 0.4618 0.4826 0.5135 0.5485 0.5791 0.5990 0.6077 0.6124 0.6254 0.6577 0.7114 0.7761 0.8339 0.8726 0.8997 0.9417 1.0164 1.0960 1.1179 1.1149 1.3201 - 0.1177 0.1566 0.1942 0.2266 0.2505 0.2651 0.2726 0.2775 0.2849 0.2988 0.3208 0.3491 0.3793 0.4060 0.4250 0.4346 0.4374 0.4388 0.4454 0.4621 0.4897 0.5240 0.5576 0.5829 0.5964 0.6016 0.6088 0.6301 0.6725 0.7323 0.7954 0.8454 0.8777 0.9072 0.9595 1.0392 1.1055 1.1099 1.1248 1.3419 - 0.1228 0.1622 0.1974 0.2253 0.2440 0.2546 0.2607 0.2675 0.2795 0.2990 0.3256 0.3557 0.3841 0.4062 0.4192 0.4243 0.4258 0.4301 0.4428 0.4665 0.4990 0.5341 0.5640 0.5830 0.5915 0.5965 0.6095 0.6404 0.6913 0.7537 0.8116 0.8533 0.8820 0.9179 0.9809 1.0607 1.1096 1.1018 1.1427 1.3633 - 0.1283 0.1664 0.1980 0.2209 0.2351 0.2433 0.2502 0.2606 0.2779 0.3025 0.3319 0.3615 0.3863 0.4028 0.4107 0.4132 0.4159 0.4250 0.4444 0.4740 0.5090 0.5422 0.5667 0.5799 0.5858 0.5939 0.6152 0.6558 0.7127 0.7736 0.8240 0.8582 0.8872 0.9324 1.0043 1.0786 1.1082 1.0964 1.1692 1.3838 - 0.1331 0.1685 0.1957 0.2139 0.2249 0.2327 0.2422 0.2574 0.2798 0.3080 0.3381 0.3652 0.3852 0.3964 0.4007 0.4028 0.4090 0.4241 0.4498 0.4832 0.5180 0.5471 0.5657 0.5747 0.5811 0.5953 0.6261 0.6751 0.7346 0.7908 0.8326 0.8619 0.8949 0.9507 1.0277 1.0909 1.1022 1.0965 1.2043 1.4024 - 0.1361 0.1680 0.1907 0.2053 0.2149 0.2241 0.2375 0.2575 0.2841 0.3141 0.3429 0.3661 0.3809 0.3878 0.3905 0.3947 0.4058 0.4271 0.4577 0.4926 0.5248 0.5485 0.5618 0.5690 0.5789 0.6013 0.6416 0.6966 0.7552 0.8043 0.8384 0.8660 0.9062 0.9717 1.0486 1.0966 1.0940 1.1049 1.2465 1.4186 - 0.1371 0.1651 0.1839 0.1962 0.2061 0.2182 0.2360 0.2604 0.2896 0.3195 0.3455 0.3640 0.3742 0.3784 0.3816 0.3896 0.4065 0.4333 0.4667 0.5007 0.5287 0.5467 0.5563 0.5642 0.5801 0.6117 0.6601 0.7180 0.7728 0.8142 0.8427 0.8723 0.9213 0.9938 1.0649 1.0957 1.0865 1.1236 1.2930 1.4317 - 0.1359 0.1602 0.1762 0.1877 0.1993 0.2151 0.2372 0.2649 0.2951 0.3233 0.3454 0.3593 0.3660 0.3694 0.3750 0.3878 0.4103 0.4412 0.4755 0.5067 0.5295 0.5428 0.5507 0.5619 0.5852 0.6256 0.6799 0.7378 0.7869 0.8212 0.8471 0.8817 0.9395 1.0147 1.0751 1.0897 1.0829 1.1528 1.3399 1.4411 - 0.1329 0.1542 0.1685 0.1806 0.1950 0.2147 0.2404 0.2701 0.2998 0.3251 0.3429 0.3529 0.3576 0.3619 0.3711 0.3891 0.4164 0.4497 0.4829 0.5102 0.5279 0.5378 0.5463 0.5625 0.5939 0.6416 0.6991 0.7545 0.7973 0.8264 0.8529 0.8944 0.9594 1.0325 1.0790 1.0811 1.0861 1.1913 1.3829 1.4466 - 0.1288 0.1478 0.1617 0.1754 0.1929 0.2162 0.2446 0.2749 0.3029 0.3247 0.3386 0.3457 0.3499 0.3564 0.3699 0.3928 0.4235 0.4575 0.4884 0.5112 0.5248 0.5330 0.5440 0.5664 0.6051 0.6582 0.7164 0.7676 0.8046 0.8309 0.8608 0.9099 0.9792 1.0459 1.0775 1.0728 1.0977 1.2360 1.4172 1.4482 - 0.1240 0.1417 0.1560 0.1720 0.1927 0.2190 0.2490 0.2789 0.3044 0.3227 0.3333 0.3387 0.3435 0.3530 0.3709 0.3978 0.4307 0.4640 0.4918 0.5104 0.5210 0.5293 0.5441 0.5729 0.6179 0.6741 0.7308 0.7773 0.8097 0.8358 0.8709 0.9269 0.9972 1.0544 1.0721 1.0673 1.1178 1.2828 1.4390 1.4460 - 0.1193 0.1364 0.1518 0.1702 0.1939 0.2224 0.2531 0.2817 0.3044 0.3195 0.3276 0.3324 0.3388 0.3517 0.3736 0.4035 0.4373 0.4689 0.4932 0.5084 0.5174 0.5272 0.5466 0.5812 0.6309 0.6883 0.7423 0.7840 0.8135 0.8414 0.8827 0.9441 1.0123 1.0583 1.0651 1.0666 1.1449 1.3268 1.4460 1.4407 - 0.1149 0.1320 0.1489 0.1698 0.1958 0.2259 0.2564 0.2833 0.3034 0.3157 0.3222 0.3272 0.3357 0.3519 0.3770 0.4090 0.4426 0.4721 0.4933 0.5059 0.5144 0.5268 0.5508 0.5905 0.6432 0.7002 0.7508 0.7885 0.8167 0.8478 0.8951 0.9599 1.0238 1.0586 1.0584 1.0711 1.1761 1.3639 1.4379 1.4329 - 0.1112 0.1287 0.1472 0.1701 0.1981 0.2290 0.2589 0.2840 0.3016 0.3118 0.3175 0.3232 0.3340 0.3531 0.3808 0.4138 0.4467 0.4740 0.4925 0.5034 0.5124 0.5276 0.5560 0.5996 0.6541 0.7098 0.7569 0.7915 0.8197 0.8547 0.9072 0.9737 1.0318 1.0566 1.0532 1.0800 1.2080 1.3916 1.4168 1.4236 - 0.1082 0.1263 0.1463 0.1710 0.2003 0.2315 0.2607 0.2840 0.2996 0.3083 0.3136 0.3204 0.3333 0.3548 0.3843 0.4178 0.4497 0.4748 0.4912 0.5012 0.5113 0.5294 0.5614 0.6080 0.6631 0.7170 0.7610 0.7936 0.8226 0.8614 0.9181 0.9847 1.0369 1.0537 1.0501 1.0917 1.2375 1.4091 1.3870 1.4140 - 0.1059 0.1247 0.1459 0.1719 0.2021 0.2334 0.2617 0.2836 0.2977 0.3055 0.3108 0.3186 0.3332 0.3566 0.3872 0.4208 0.4516 0.4750 0.4899 0.4996 0.5108 0.5315 0.5664 0.6149 0.6702 0.7223 0.7638 0.7950 0.8252 0.8674 0.9271 0.9929 1.0398 1.0507 1.0489 1.1038 1.2620 1.4178 1.3543 1.4051 - 0.1044 0.1237 0.1458 0.1728 0.2035 0.2348 0.2624 0.2831 0.2962 0.3033 0.3088 0.3175 0.3334 0.3581 0.3894 0.4229 0.4528 0.4749 0.4888 0.4984 0.5108 0.5334 0.5704 0.6201 0.6751 0.7257 0.7654 0.7959 0.8274 0.8721 0.9337 0.9985 1.0412 1.0483 1.0490 1.1143 1.2801 1.4205 1.3250 1.3979 - 0.1035 0.1232 0.1458 0.1733 0.2044 0.2355 0.2627 0.2828 0.2952 0.3020 0.3076 0.3169 0.3337 0.3590 0.3908 0.4241 0.4534 0.4748 0.4881 0.4978 0.5109 0.5347 0.5729 0.6233 0.6781 0.7277 0.7664 0.7965 0.8288 0.8751 0.9377 1.0017 1.0418 1.0468 1.0495 1.1214 1.2910 1.4205 1.3048 1.3933 - 0.1032 0.1230 0.1458 0.1735 0.2047 0.2358 0.2627 0.2826 0.2948 0.3016 0.3072 0.3167 0.3337 0.3594 0.3912 0.4245 0.4536 0.4747 0.4879 0.4975 0.5109 0.5351 0.5737 0.6243 0.6790 0.7284 0.7667 0.7967 0.8293 0.8761 0.9390 1.0028 1.0419 1.0463 1.0497 1.1239 1.2946 1.4202 1.2976 1.3916 - 0.1799 0.2119 0.2315 0.2431 0.2527 0.2661 0.2870 0.3153 0.3474 0.3778 0.4011 0.4142 0.4180 0.4167 0.4168 0.4246 0.4428 0.4699 0.5000 0.5254 0.5400 0.5427 0.5385 0.5370 0.5473 0.5731 0.6091 0.6433 0.6635 0.6671 0.6667 0.6845 0.7357 0.8111 0.8784 0.9174 0.9626 1.0669 1.1354 1.2143 - 0.1797 0.2116 0.2310 0.2426 0.2522 0.2659 0.2870 0.3154 0.3475 0.3778 0.4009 0.4139 0.4175 0.4162 0.4165 0.4244 0.4429 0.4701 0.5002 0.5254 0.5398 0.5423 0.5381 0.5367 0.5472 0.5733 0.6095 0.6435 0.6635 0.6670 0.6666 0.6847 0.7362 0.8117 0.8787 0.9175 0.9629 1.0674 1.1353 1.2150 - 0.1794 0.2106 0.2296 0.2410 0.2510 0.2652 0.2869 0.3157 0.3480 0.3780 0.4005 0.4129 0.4160 0.4147 0.4153 0.4239 0.4430 0.4707 0.5007 0.5255 0.5392 0.5411 0.5368 0.5359 0.5472 0.5739 0.6104 0.6442 0.6635 0.6665 0.6664 0.6853 0.7378 0.8134 0.8797 0.9178 0.9640 1.0691 1.1353 1.2169 - 0.1786 0.2089 0.2271 0.2384 0.2489 0.2641 0.2868 0.3163 0.3487 0.3782 0.3998 0.4111 0.4136 0.4122 0.4136 0.4232 0.4434 0.4716 0.5015 0.5255 0.5381 0.5392 0.5348 0.5345 0.5472 0.5751 0.6120 0.6453 0.6635 0.6658 0.6661 0.6865 0.7406 0.8164 0.8813 0.9184 0.9657 1.0718 1.1351 1.2200 - 0.1774 0.2063 0.2237 0.2349 0.2462 0.2628 0.2869 0.3173 0.3497 0.3783 0.3985 0.4085 0.4102 0.4089 0.4113 0.4224 0.4440 0.4730 0.5026 0.5253 0.5364 0.5364 0.5320 0.5329 0.5473 0.5768 0.6142 0.6466 0.6633 0.6647 0.6657 0.6884 0.7445 0.8204 0.8834 0.9193 0.9683 1.0755 1.1348 1.2244 - 0.1756 0.2028 0.2192 0.2307 0.2432 0.2615 0.2873 0.3186 0.3508 0.3783 0.3966 0.4049 0.4058 0.4049 0.4086 0.4218 0.4451 0.4748 0.5038 0.5249 0.5340 0.5328 0.5285 0.5310 0.5478 0.5792 0.6169 0.6481 0.6629 0.6633 0.6655 0.6912 0.7498 0.8254 0.8858 0.9203 0.9717 1.0801 1.1341 1.2302 - 0.1730 0.1984 0.2139 0.2258 0.2399 0.2605 0.2881 0.3203 0.3520 0.3777 0.3939 0.4003 0.4004 0.4002 0.4059 0.4215 0.4467 0.4770 0.5050 0.5240 0.5308 0.5284 0.5246 0.5293 0.5488 0.5822 0.6201 0.6495 0.6620 0.6616 0.6657 0.6950 0.7564 0.8314 0.8885 0.9216 0.9762 1.0856 1.1331 1.2372 - 0.1694 0.1929 0.2078 0.2206 0.2369 0.2600 0.2896 0.3224 0.3530 0.3765 0.3901 0.3946 0.3942 0.3952 0.4034 0.4218 0.4489 0.4795 0.5060 0.5223 0.5267 0.5232 0.5204 0.5279 0.5506 0.5859 0.6234 0.6505 0.6605 0.6597 0.6666 0.7003 0.7645 0.8381 0.8913 0.9233 0.9818 1.0918 1.1315 1.2456 - 0.1648 0.1864 0.2012 0.2155 0.2345 0.2603 0.2917 0.3245 0.3536 0.3743 0.3850 0.3878 0.3874 0.3903 0.4015 0.4228 0.4518 0.4820 0.5064 0.5196 0.5215 0.5173 0.5163 0.5272 0.5533 0.5903 0.6268 0.6509 0.6584 0.6578 0.6684 0.7072 0.7739 0.8453 0.8940 0.9254 0.9887 1.0983 1.1294 1.2554 - 0.1590 0.1792 0.1944 0.2109 0.2330 0.2615 0.2943 0.3266 0.3533 0.3708 0.3787 0.3800 0.3803 0.3858 0.4005 0.4249 0.4551 0.4844 0.5060 0.5158 0.5154 0.5112 0.5127 0.5275 0.5571 0.5951 0.6297 0.6505 0.6556 0.6562 0.6715 0.7159 0.7846 0.8527 0.8965 0.9282 0.9970 1.1049 1.1266 1.2665 - 0.1522 0.1716 0.1879 0.2073 0.2326 0.2637 0.2972 0.3282 0.3518 0.3658 0.3710 0.3716 0.3734 0.3821 0.4006 0.4278 0.4586 0.4862 0.5043 0.5107 0.5084 0.5052 0.5101 0.5292 0.5619 0.6001 0.6320 0.6489 0.6522 0.6552 0.6764 0.7265 0.7964 0.8601 0.8989 0.9321 1.0067 1.1112 1.1232 1.2788 - 0.1447 0.1639 0.1823 0.2049 0.2336 0.2667 0.3001 0.3288 0.3489 0.3592 0.3623 0.3629 0.3672 0.3798 0.4021 0.4315 0.4621 0.4869 0.5012 0.5043 0.5010 0.4998 0.5089 0.5325 0.5676 0.6049 0.6331 0.6462 0.6486 0.6552 0.6833 0.7390 0.8088 0.8670 0.9013 0.9373 1.0179 1.1167 1.1195 1.2924 - 0.1369 0.1569 0.1779 0.2042 0.2359 0.2702 0.3025 0.3280 0.3441 0.3512 0.3528 0.3547 0.3623 0.3791 0.4049 0.4356 0.4648 0.4862 0.4963 0.4968 0.4936 0.4955 0.5095 0.5373 0.5739 0.6090 0.6328 0.6422 0.6450 0.6569 0.6925 0.7531 0.8214 0.8733 0.9039 0.9443 1.0303 1.1210 1.1157 1.3071 - 0.1293 0.1509 0.1753 0.2051 0.2392 0.2737 0.3038 0.3255 0.3375 0.3419 0.3433 0.3474 0.3590 0.3801 0.4087 0.4397 0.4664 0.4836 0.4898 0.4885 0.4868 0.4930 0.5121 0.5436 0.5803 0.6120 0.6309 0.6375 0.6421 0.6606 0.7041 0.7684 0.8335 0.8788 0.9072 0.9534 1.0436 1.1235 1.1123 1.3227 - 0.1226 0.1467 0.1747 0.2077 0.2432 0.2766 0.3034 0.3209 0.3292 0.3319 0.3342 0.3417 0.3578 0.3828 0.4132 0.4430 0.4662 0.4789 0.4819 0.4801 0.4813 0.4926 0.5169 0.5510 0.5864 0.6135 0.6275 0.6323 0.6405 0.6669 0.7178 0.7842 0.8447 0.8835 0.9116 0.9648 1.0574 1.1239 1.1102 1.3389 - 0.1173 0.1444 0.1760 0.2114 0.2470 0.2782 0.3010 0.3142 0.3197 0.3220 0.3265 0.3382 0.3588 0.3869 0.4177 0.4450 0.4638 0.4723 0.4730 0.4722 0.4777 0.4947 0.5236 0.5588 0.5914 0.6132 0.6228 0.6276 0.6411 0.6759 0.7333 0.7998 0.8544 0.8877 0.9177 0.9787 1.0708 1.1221 1.1101 1.3555 - 0.1139 0.1444 0.1789 0.2156 0.2502 0.2780 0.2964 0.3058 0.3096 0.3128 0.3208 0.3370 0.3617 0.3917 0.4214 0.4452 0.4592 0.4640 0.4638 0.4657 0.4764 0.4992 0.5315 0.5664 0.5947 0.6111 0.6175 0.6240 0.6445 0.6877 0.7499 0.8143 0.8623 0.8916 0.9261 0.9947 1.0831 1.1180 1.1130 1.3721 - 0.1126 0.1463 0.1830 0.2197 0.2518 0.2755 0.2897 0.2963 0.2996 0.3052 0.3175 0.3383 0.3661 0.3965 0.4238 0.4430 0.4525 0.4546 0.4552 0.4612 0.4778 0.5057 0.5401 0.5728 0.5961 0.6075 0.6123 0.6226 0.6510 0.7019 0.7667 0.8271 0.8684 0.8961 0.9371 1.0124 1.0933 1.1121 1.1200 1.3882 - 0.1134 0.1498 0.1876 0.2229 0.2515 0.2709 0.2813 0.2862 0.2907 0.2998 0.3167 0.3415 0.3713 0.4006 0.4241 0.4385 0.4441 0.4451 0.4480 0.4592 0.4817 0.5136 0.5484 0.5776 0.5954 0.6028 0.6082 0.6242 0.6608 0.7179 0.7828 0.8375 0.8730 0.9016 0.9508 1.0308 1.1007 1.1052 1.1319 1.4033 - 0.1159 0.1542 0.1917 0.2246 0.2491 0.2643 0.2720 0.2766 0.2835 0.2968 0.3183 0.3462 0.3763 0.4031 0.4222 0.4320 0.4348 0.4363 0.4430 0.4599 0.4877 0.5221 0.5554 0.5801 0.5929 0.5980 0.6061 0.6292 0.6737 0.7349 0.7974 0.8454 0.8766 0.9090 0.9672 1.0487 1.1046 1.0985 1.1496 1.4168 - 0.1197 0.1588 0.1948 0.2243 0.2446 0.2562 0.2624 0.2682 0.2786 0.2965 0.3218 0.3515 0.3805 0.4037 0.4180 0.4239 0.4255 0.4290 0.4406 0.4632 0.4951 0.5303 0.5606 0.5802 0.5890 0.5940 0.6068 0.6377 0.6891 0.7518 0.8097 0.8510 0.8801 0.9187 0.9854 1.0650 1.1050 1.0935 1.1732 1.4282 - 0.1240 0.1628 0.1964 0.2219 0.2383 0.2473 0.2534 0.2617 0.2761 0.2983 0.3265 0.3565 0.3831 0.4020 0.4119 0.4151 0.4170 0.4240 0.4409 0.4685 0.5031 0.5372 0.5634 0.5783 0.5846 0.5916 0.6108 0.6497 0.7060 0.7677 0.8195 0.8548 0.8844 0.9308 1.0046 1.0783 1.1021 1.0918 1.2025 1.4368 - 0.1283 0.1657 0.1962 0.2178 0.2308 0.2386 0.2458 0.2573 0.2760 0.3018 0.3316 0.3606 0.3837 0.3983 0.4045 0.4065 0.4102 0.4216 0.4438 0.4753 0.5107 0.5422 0.5639 0.5747 0.5804 0.5915 0.6181 0.6642 0.7235 0.7819 0.8268 0.8576 0.8901 0.9453 1.0234 1.0877 1.0968 1.0951 1.2368 1.4424 - 0.1319 0.1672 0.1942 0.2122 0.2229 0.2305 0.2400 0.2553 0.2779 0.3063 0.3363 0.3631 0.3824 0.3928 0.3966 0.3987 0.4056 0.4218 0.4486 0.4827 0.5173 0.5451 0.5622 0.5703 0.5774 0.5941 0.6285 0.6805 0.7403 0.7938 0.8320 0.8603 0.8980 0.9615 1.0406 1.0928 1.0904 1.1045 1.2743 1.4443 - 0.1345 0.1671 0.1906 0.2057 0.2152 0.2238 0.2362 0.2552 0.2811 0.3110 0.3401 0.3638 0.3791 0.3862 0.3888 0.3925 0.4033 0.4243 0.4548 0.4899 0.5223 0.5459 0.5589 0.5659 0.5761 0.5995 0.6412 0.6973 0.7558 0.8034 0.8358 0.8639 0.9081 0.9786 1.0551 1.0936 1.0844 1.1207 1.3131 1.4424 - 0.1359 0.1656 0.1860 0.1989 0.2082 0.2187 0.2343 0.2568 0.2851 0.3153 0.3426 0.3628 0.3745 0.3792 0.3818 0.3882 0.4032 0.4286 0.4616 0.4963 0.5255 0.5448 0.5548 0.5622 0.5769 0.6074 0.6554 0.7137 0.7691 0.8107 0.8389 0.8690 0.9202 0.9954 1.0659 1.0909 1.0805 1.1436 1.3505 1.4366 - 0.1360 0.1629 0.1807 0.1924 0.2024 0.2152 0.2341 0.2596 0.2892 0.3188 0.3436 0.3603 0.3690 0.3724 0.3761 0.3858 0.4051 0.4340 0.4683 0.5014 0.5269 0.5423 0.5505 0.5597 0.5798 0.6171 0.6700 0.7289 0.7802 0.8162 0.8421 0.8758 0.9337 1.0109 1.0729 1.0856 1.0801 1.1724 1.3839 1.4270 - 0.1351 0.1594 0.1753 0.1866 0.1978 0.2133 0.2352 0.2629 0.2931 0.3213 0.3432 0.3568 0.3631 0.3663 0.3719 0.3851 0.4083 0.4398 0.4743 0.5051 0.5269 0.5391 0.5467 0.5588 0.5846 0.6279 0.6843 0.7421 0.7890 0.8204 0.8458 0.8842 0.9479 1.0244 1.0761 1.0791 1.0840 1.2052 1.4108 1.4141 - 0.1334 0.1555 0.1701 0.1816 0.1946 0.2127 0.2372 0.2663 0.2963 0.3226 0.3417 0.3526 0.3574 0.3611 0.3692 0.3859 0.4124 0.4456 0.4794 0.5074 0.5257 0.5357 0.5438 0.5595 0.5908 0.6390 0.6974 0.7532 0.7956 0.8238 0.8504 0.8939 0.9619 1.0352 1.0761 1.0728 1.0924 1.2399 1.4294 1.3985 - 0.1311 0.1516 0.1655 0.1777 0.1926 0.2131 0.2396 0.2696 0.2988 0.3231 0.3395 0.3482 0.3523 0.3570 0.3677 0.3877 0.4168 0.4508 0.4833 0.5085 0.5239 0.5325 0.5419 0.5615 0.5978 0.6498 0.7089 0.7621 0.8006 0.8269 0.8557 0.9043 0.9749 1.0433 1.0739 1.0678 1.1047 1.2740 1.4389 1.3809 - 0.1287 0.1479 0.1615 0.1747 0.1914 0.2141 0.2421 0.2724 0.3006 0.3227 0.3368 0.3439 0.3479 0.3540 0.3673 0.3901 0.4211 0.4553 0.4862 0.5088 0.5219 0.5298 0.5410 0.5645 0.6050 0.6597 0.7186 0.7690 0.8044 0.8299 0.8616 0.9146 0.9864 1.0488 1.0703 1.0646 1.1199 1.3054 1.4394 1.3625 - 0.1263 0.1446 0.1583 0.1725 0.1910 0.2154 0.2444 0.2746 0.3016 0.3219 0.3341 0.3401 0.3443 0.3520 0.3676 0.3927 0.4250 0.4589 0.4882 0.5085 0.5199 0.5278 0.5411 0.5680 0.6119 0.6684 0.7264 0.7742 0.8071 0.8327 0.8676 0.9243 0.9959 1.0522 1.0663 1.0633 1.1363 1.3323 1.4324 1.3442 - 0.1241 0.1418 0.1558 0.1711 0.1910 0.2167 0.2464 0.2764 0.3022 0.3208 0.3316 0.3370 0.3415 0.3507 0.3684 0.3952 0.4283 0.4617 0.4894 0.5079 0.5181 0.5264 0.5417 0.5716 0.6181 0.6755 0.7324 0.7779 0.8092 0.8354 0.8732 0.9328 1.0035 1.0540 1.0625 1.0637 1.1524 1.3539 1.4203 1.3272 - 0.1224 0.1397 0.1540 0.1701 0.1913 0.2180 0.2480 0.2776 0.3024 0.3197 0.3295 0.3345 0.3396 0.3500 0.3692 0.3973 0.4308 0.4637 0.4901 0.5072 0.5167 0.5255 0.5426 0.5748 0.6232 0.6811 0.7369 0.7805 0.8107 0.8378 0.8782 0.9398 1.0091 1.0547 1.0594 1.0652 1.1666 1.3699 1.4061 1.3127 - 0.1210 0.1381 0.1527 0.1696 0.1916 0.2189 0.2492 0.2784 0.3024 0.3188 0.3279 0.3327 0.3382 0.3497 0.3700 0.3989 0.4326 0.4650 0.4905 0.5066 0.5157 0.5251 0.5435 0.5774 0.6270 0.6850 0.7399 0.7822 0.8118 0.8397 0.8820 0.9448 1.0129 1.0549 1.0572 1.0669 1.1776 1.3806 1.3931 1.3016 - 0.1202 0.1372 0.1520 0.1693 0.1918 0.2195 0.2499 0.2788 0.3024 0.3183 0.3269 0.3316 0.3375 0.3495 0.3705 0.3999 0.4337 0.4658 0.4906 0.5062 0.5151 0.5248 0.5441 0.5790 0.6293 0.6874 0.7417 0.7832 0.8124 0.8409 0.8843 0.9479 1.0151 1.0548 1.0558 1.0682 1.1846 1.3867 1.3840 1.2946 - 0.1199 0.1369 0.1518 0.1692 0.1919 0.2197 0.2501 0.2790 0.3024 0.3180 0.3266 0.3313 0.3373 0.3495 0.3707 0.4003 0.4341 0.4660 0.4907 0.5060 0.5149 0.5248 0.5443 0.5795 0.6301 0.6882 0.7423 0.7835 0.8126 0.8413 0.8852 0.9490 1.0159 1.0548 1.0554 1.0687 1.1870 1.3886 1.3807 1.2922 - 0.1622 0.1832 0.1977 0.2124 0.2321 0.2588 0.2908 0.3236 0.3519 0.3713 0.3806 0.3823 0.3818 0.3855 0.3983 0.4214 0.4515 0.4817 0.5047 0.5158 0.5157 0.5108 0.5108 0.5244 0.5537 0.5925 0.6284 0.6499 0.6546 0.6538 0.6680 0.7130 0.7835 0.8524 0.8947 0.9259 0.9998 1.1114 1.1200 1.3253 - 0.1619 0.1828 0.1974 0.2122 0.2321 0.2588 0.2909 0.3237 0.3518 0.3711 0.3803 0.3819 0.3815 0.3853 0.3983 0.4215 0.4517 0.4819 0.5047 0.5156 0.5154 0.5105 0.5107 0.5244 0.5538 0.5927 0.6285 0.6499 0.6544 0.6537 0.6682 0.7134 0.7840 0.8527 0.8949 0.9261 1.0002 1.1116 1.1198 1.3259 - 0.1611 0.1818 0.1964 0.2115 0.2318 0.2590 0.2913 0.3240 0.3518 0.3706 0.3794 0.3808 0.3805 0.3847 0.3982 0.4218 0.4521 0.4822 0.5046 0.5151 0.5145 0.5096 0.5102 0.5245 0.5544 0.5934 0.6289 0.6497 0.6540 0.6535 0.6688 0.7148 0.7855 0.8537 0.8952 0.9266 1.0015 1.1123 1.1194 1.3277 - 0.1597 0.1801 0.1948 0.2105 0.2315 0.2593 0.2919 0.3245 0.3517 0.3697 0.3778 0.3790 0.3788 0.3837 0.3980 0.4224 0.4529 0.4827 0.5044 0.5140 0.5130 0.5082 0.5095 0.5248 0.5554 0.5945 0.6295 0.6495 0.6533 0.6533 0.6699 0.7171 0.7881 0.8553 0.8957 0.9275 1.0037 1.1135 1.1187 1.3308 - 0.1577 0.1777 0.1926 0.2091 0.2312 0.2599 0.2928 0.3251 0.3514 0.3683 0.3756 0.3764 0.3766 0.3824 0.3979 0.4232 0.4540 0.4833 0.5040 0.5126 0.5109 0.5063 0.5086 0.5252 0.5568 0.5960 0.6301 0.6490 0.6523 0.6530 0.6714 0.7204 0.7917 0.8574 0.8964 0.9288 1.0068 1.1150 1.1177 1.3349 - 0.1551 0.1747 0.1900 0.2075 0.2309 0.2607 0.2939 0.3257 0.3509 0.3665 0.3726 0.3731 0.3739 0.3810 0.3979 0.4243 0.4554 0.4840 0.5034 0.5106 0.5082 0.5040 0.5077 0.5259 0.5587 0.5979 0.6309 0.6483 0.6509 0.6528 0.6736 0.7247 0.7962 0.8600 0.8972 0.9306 1.0108 1.1168 1.1165 1.3403 - 0.1519 0.1711 0.1871 0.2059 0.2309 0.2618 0.2953 0.3263 0.3501 0.3640 0.3689 0.3692 0.3708 0.3795 0.3982 0.4258 0.4570 0.4846 0.5023 0.5080 0.5050 0.5014 0.5068 0.5271 0.5611 0.6000 0.6315 0.6472 0.6493 0.6527 0.6765 0.7301 0.8016 0.8630 0.8982 0.9329 1.0157 1.1186 1.1151 1.3466 - 0.1481 0.1671 0.1840 0.2045 0.2312 0.2632 0.2968 0.3268 0.3487 0.3608 0.3645 0.3647 0.3675 0.3782 0.3989 0.4277 0.4588 0.4850 0.5008 0.5047 0.5012 0.4987 0.5062 0.5288 0.5640 0.6024 0.6320 0.6456 0.6475 0.6529 0.6803 0.7367 0.8078 0.8663 0.8994 0.9360 1.0215 1.1205 1.1135 1.3540 - 0.1438 0.1628 0.1809 0.2033 0.2319 0.2650 0.2984 0.3270 0.3467 0.3568 0.3594 0.3599 0.3643 0.3772 0.4000 0.4299 0.4606 0.4851 0.4986 0.5008 0.4970 0.4960 0.5061 0.5311 0.5673 0.6048 0.6320 0.6436 0.6454 0.6536 0.6852 0.7443 0.8147 0.8697 0.9008 0.9399 1.0282 1.1220 1.1119 1.3622 - 0.1391 0.1584 0.1781 0.2027 0.2332 0.2671 0.2999 0.3266 0.3440 0.3520 0.3538 0.3549 0.3612 0.3767 0.4017 0.4324 0.4622 0.4846 0.4956 0.4963 0.4926 0.4935 0.5066 0.5341 0.5711 0.6071 0.6316 0.6411 0.6434 0.6550 0.6912 0.7530 0.8220 0.8731 0.9025 0.9448 1.0357 1.1231 1.1105 1.3711 - 0.1341 0.1541 0.1758 0.2027 0.2350 0.2694 0.3011 0.3256 0.3404 0.3464 0.3476 0.3499 0.3587 0.3769 0.4039 0.4350 0.4635 0.4834 0.4919 0.4912 0.4882 0.4916 0.5080 0.5379 0.5752 0.6091 0.6305 0.6381 0.6415 0.6572 0.6984 0.7626 0.8295 0.8764 0.9046 0.9508 1.0440 1.1236 1.1094 1.3806 - 0.1290 0.1502 0.1741 0.2035 0.2373 0.2717 0.3019 0.3237 0.3358 0.3401 0.3413 0.3453 0.3568 0.3779 0.4066 0.4376 0.4643 0.4813 0.4872 0.4856 0.4839 0.4904 0.5103 0.5424 0.5794 0.6107 0.6287 0.6347 0.6399 0.6606 0.7069 0.7729 0.8371 0.8796 0.9073 0.9581 1.0527 1.1232 1.1089 1.3905 - 0.1242 0.1470 0.1734 0.2050 0.2400 0.2738 0.3018 0.3207 0.3302 0.3333 0.3350 0.3412 0.3558 0.3797 0.4097 0.4400 0.4642 0.4781 0.4818 0.4799 0.4802 0.4903 0.5136 0.5475 0.5834 0.6115 0.6262 0.6311 0.6391 0.6653 0.7166 0.7837 0.8443 0.8826 0.9108 0.9668 1.0617 1.1217 1.1095 1.4005 - 0.1199 0.1446 0.1736 0.2073 0.2428 0.2755 0.3009 0.3167 0.3239 0.3261 0.3291 0.3380 0.3559 0.3822 0.4129 0.4418 0.4631 0.4739 0.4757 0.4741 0.4772 0.4913 0.5180 0.5530 0.5871 0.6115 0.6230 0.6276 0.6392 0.6714 0.7275 0.7947 0.8511 0.8854 0.9153 0.9768 1.0706 1.1192 1.1116 1.4103 - 0.1162 0.1433 0.1748 0.2101 0.2455 0.2764 0.2988 0.3116 0.3168 0.3191 0.3239 0.3360 0.3571 0.3854 0.4160 0.4429 0.4609 0.4686 0.4691 0.4688 0.4753 0.4936 0.5234 0.5586 0.5902 0.6106 0.6192 0.6245 0.6407 0.6791 0.7392 0.8054 0.8571 0.8883 0.9210 0.9882 1.0791 1.1155 1.1156 1.4197 - 0.1136 0.1431 0.1769 0.2132 0.2479 0.2763 0.2955 0.3055 0.3094 0.3123 0.3197 0.3352 0.3593 0.3889 0.4188 0.4428 0.4574 0.4624 0.4624 0.4642 0.4746 0.4971 0.5294 0.5641 0.5924 0.6087 0.6152 0.6222 0.6437 0.6883 0.7514 0.8155 0.8623 0.8913 0.9283 1.0008 1.0867 1.1110 1.1220 1.4284 - 0.1121 0.1441 0.1797 0.2164 0.2495 0.2750 0.2910 0.2986 0.3019 0.3063 0.3168 0.3357 0.3623 0.3926 0.4208 0.4416 0.4527 0.4556 0.4559 0.4606 0.4754 0.5018 0.5357 0.5690 0.5935 0.6060 0.6112 0.6211 0.6486 0.6989 0.7638 0.8247 0.8666 0.8947 0.9371 1.0141 1.0931 1.1057 1.1313 1.4358 - 0.1117 0.1460 0.1829 0.2192 0.2502 0.2725 0.2854 0.2912 0.2948 0.3014 0.3152 0.3374 0.3660 0.3960 0.4218 0.4390 0.4469 0.4484 0.4500 0.4583 0.4776 0.5075 0.5421 0.5731 0.5935 0.6027 0.6078 0.6216 0.6553 0.7106 0.7759 0.8327 0.8701 0.8989 0.9476 1.0279 1.0978 1.1003 1.1438 1.4417 - 0.1125 0.1488 0.1863 0.2214 0.2497 0.2687 0.2789 0.2837 0.2883 0.2977 0.3151 0.3402 0.3699 0.3988 0.4216 0.4352 0.4403 0.4413 0.4450 0.4575 0.4812 0.5137 0.5481 0.5760 0.5924 0.5990 0.6053 0.6240 0.6639 0.7230 0.7874 0.8393 0.8730 0.9041 0.9596 1.0416 1.1007 1.0952 1.1598 1.4457 - 0.1143 0.1520 0.1895 0.2228 0.2480 0.2639 0.2719 0.2765 0.2829 0.2955 0.3163 0.3437 0.3737 0.4007 0.4201 0.4302 0.4333 0.4348 0.4414 0.4582 0.4858 0.5201 0.5532 0.5776 0.5902 0.5955 0.6041 0.6284 0.6741 0.7358 0.7977 0.8445 0.8756 0.9105 0.9729 1.0545 1.1015 1.0912 1.1794 1.4474 - 0.1169 0.1555 0.1922 0.2231 0.2452 0.2581 0.2647 0.2699 0.2787 0.2947 0.3186 0.3476 0.3771 0.4015 0.4173 0.4244 0.4262 0.4291 0.4392 0.4604 0.4913 0.5263 0.5573 0.5779 0.5874 0.5924 0.6046 0.6348 0.6857 0.7484 0.8067 0.8484 0.8782 0.9183 0.9870 1.0661 1.1005 1.0891 1.2023 1.4465 - 0.1199 0.1588 0.1941 0.2223 0.2412 0.2518 0.2578 0.2642 0.2759 0.2953 0.3217 0.3516 0.3796 0.4011 0.4134 0.4180 0.4195 0.4246 0.4386 0.4638 0.4972 0.5319 0.5601 0.5770 0.5842 0.5902 0.6069 0.6431 0.6981 0.7605 0.8143 0.8513 0.8813 0.9275 1.0016 1.0758 1.0977 1.0895 1.2281 1.4428 - 0.1232 0.1617 0.1951 0.2204 0.2364 0.2453 0.2513 0.2597 0.2745 0.2969 0.3253 0.3552 0.3813 0.3994 0.4086 0.4115 0.4136 0.4214 0.4395 0.4682 0.5030 0.5366 0.5615 0.5750 0.5809 0.5891 0.6111 0.6530 0.7109 0.7716 0.8204 0.8535 0.8851 0.9379 1.0159 1.0833 1.0937 1.0932 1.2560 1.4361 - 0.1263 0.1640 0.1952 0.2175 0.2311 0.2389 0.2457 0.2564 0.2743 0.2994 0.3290 0.3582 0.3818 0.3967 0.4033 0.4052 0.4087 0.4197 0.4417 0.4732 0.5086 0.5401 0.5616 0.5723 0.5780 0.5894 0.6170 0.6640 0.7236 0.7815 0.8251 0.8554 0.8899 0.9492 1.0293 1.0883 1.0891 1.1004 1.2850 1.4263 - 0.1291 0.1655 0.1943 0.2139 0.2256 0.2330 0.2411 0.2544 0.2752 0.3025 0.3326 0.3603 0.3812 0.3932 0.3977 0.3995 0.4049 0.4194 0.4449 0.4784 0.5134 0.5424 0.5606 0.5692 0.5757 0.5912 0.6243 0.6757 0.7358 0.7900 0.8287 0.8573 0.8958 0.9612 1.0414 1.0908 1.0846 1.1114 1.3141 1.4136 - 0.1315 0.1663 0.1926 0.2099 0.2201 0.2277 0.2375 0.2535 0.2768 0.3057 0.3357 0.3617 0.3798 0.3890 0.3921 0.3945 0.4024 0.4204 0.4488 0.4835 0.5175 0.5436 0.5588 0.5660 0.5742 0.5943 0.6328 0.6875 0.7470 0.7971 0.8315 0.8596 0.9027 0.9733 1.0517 1.0912 1.0807 1.1260 1.3419 1.3981 - 0.1333 0.1663 0.1902 0.2056 0.2150 0.2232 0.2350 0.2535 0.2791 0.3089 0.3382 0.3621 0.3775 0.3846 0.3869 0.3904 0.4011 0.4223 0.4531 0.4883 0.5206 0.5438 0.5564 0.5631 0.5738 0.5985 0.6419 0.6990 0.7571 0.8029 0.8337 0.8624 0.9104 0.9850 1.0600 1.0897 1.0781 1.1437 1.3672 1.3802 - 0.1345 0.1656 0.1875 0.2013 0.2103 0.2195 0.2334 0.2543 0.2815 0.3118 0.3400 0.3617 0.3747 0.3801 0.3823 0.3874 0.4008 0.4249 0.4575 0.4926 0.5229 0.5432 0.5537 0.5606 0.5742 0.6036 0.6512 0.7098 0.7658 0.8076 0.8357 0.8659 0.9186 0.9960 1.0662 1.0869 1.0772 1.1637 1.3889 1.3605 - 0.1351 0.1645 0.1846 0.1972 0.2063 0.2167 0.2326 0.2555 0.2841 0.3143 0.3412 0.3608 0.3716 0.3758 0.3783 0.3852 0.4013 0.4279 0.4617 0.4962 0.5243 0.5420 0.5510 0.5587 0.5755 0.6093 0.6603 0.7197 0.7732 0.8113 0.8376 0.8699 0.9271 1.0058 1.0705 1.0833 1.0780 1.1851 1.4065 1.3396 - 0.1353 0.1631 0.1816 0.1934 0.2029 0.2146 0.2324 0.2570 0.2864 0.3163 0.3418 0.3594 0.3685 0.3719 0.3750 0.3838 0.4024 0.4310 0.4655 0.4990 0.5250 0.5405 0.5485 0.5574 0.5774 0.6152 0.6689 0.7283 0.7793 0.8143 0.8396 0.8744 0.9353 1.0144 1.0730 1.0794 1.0806 1.2066 1.4195 1.3182 - 0.1352 0.1615 0.1788 0.1902 0.2001 0.2132 0.2326 0.2586 0.2886 0.3179 0.3420 0.3578 0.3655 0.3684 0.3724 0.3831 0.4039 0.4340 0.4689 0.5013 0.5253 0.5389 0.5464 0.5567 0.5798 0.6209 0.6767 0.7357 0.7842 0.8166 0.8416 0.8790 0.9431 1.0215 1.0743 1.0757 1.0845 1.2273 1.4280 1.2972 - 0.1348 0.1600 0.1763 0.1874 0.1979 0.2123 0.2331 0.2602 0.2904 0.3191 0.3418 0.3561 0.3627 0.3656 0.3705 0.3829 0.4055 0.4368 0.4717 0.5030 0.5251 0.5373 0.5446 0.5564 0.5822 0.6262 0.6834 0.7417 0.7881 0.8185 0.8436 0.8835 0.9500 1.0273 1.0745 1.0725 1.0893 1.2462 1.4326 1.2776 - 0.1344 0.1585 0.1742 0.1852 0.1963 0.2117 0.2337 0.2615 0.2919 0.3199 0.3415 0.3546 0.3604 0.3633 0.3691 0.3829 0.4070 0.4392 0.4739 0.5041 0.5248 0.5359 0.5433 0.5565 0.5846 0.6308 0.6890 0.7466 0.7911 0.8200 0.8455 0.8876 0.9559 1.0317 1.0741 1.0699 1.0944 1.2624 1.4341 1.2600 - 0.1339 0.1573 0.1725 0.1835 0.1952 0.2114 0.2343 0.2627 0.2930 0.3205 0.3411 0.3532 0.3585 0.3615 0.3681 0.3831 0.4083 0.4411 0.4756 0.5049 0.5245 0.5348 0.5423 0.5567 0.5868 0.6345 0.6934 0.7502 0.7932 0.8212 0.8471 0.8910 0.9606 1.0349 1.0735 1.0679 1.0991 1.2755 1.4337 1.2455 - 0.1335 0.1564 0.1712 0.1823 0.1944 0.2113 0.2348 0.2635 0.2937 0.3208 0.3407 0.3522 0.3571 0.3603 0.3675 0.3834 0.4093 0.4425 0.4768 0.5054 0.5241 0.5340 0.5416 0.5570 0.5884 0.6373 0.6965 0.7527 0.7947 0.8220 0.8484 0.8937 0.9641 1.0371 1.0729 1.0666 1.1029 1.2851 1.4324 1.2345 - 0.1332 0.1558 0.1705 0.1816 0.1939 0.2113 0.2351 0.2640 0.2942 0.3209 0.3404 0.3515 0.3563 0.3596 0.3672 0.3836 0.4100 0.4434 0.4775 0.5057 0.5239 0.5335 0.5413 0.5573 0.5894 0.6390 0.6984 0.7542 0.7956 0.8225 0.8493 0.8953 0.9661 1.0384 1.0724 1.0659 1.1054 1.2908 1.4312 1.2278 - 0.1331 0.1556 0.1702 0.1814 0.1938 0.2112 0.2352 0.2642 0.2944 0.3210 0.3404 0.3513 0.3560 0.3593 0.3670 0.3836 0.4102 0.4436 0.4777 0.5058 0.5238 0.5333 0.5412 0.5573 0.5898 0.6396 0.6990 0.7547 0.7958 0.8227 0.8495 0.8959 0.9668 1.0388 1.0723 1.0656 1.1063 1.2928 1.4307 1.2255 - 0.1351 0.1547 0.1755 0.2015 0.2331 0.2673 0.2994 0.3246 0.3402 0.3467 0.3479 0.3496 0.3575 0.3750 0.4016 0.4328 0.4618 0.4824 0.4913 0.4906 0.4872 0.4899 0.5058 0.5357 0.5734 0.6080 0.6298 0.6373 0.6404 0.6561 0.6979 0.7630 0.8303 0.8765 0.9040 0.9521 1.0480 1.1235 1.1088 1.4243 - 0.1350 0.1546 0.1754 0.2015 0.2332 0.2674 0.2995 0.3246 0.3400 0.3464 0.3476 0.3494 0.3575 0.3750 0.4017 0.4329 0.4619 0.4823 0.4911 0.4904 0.4870 0.4899 0.5058 0.5358 0.5735 0.6080 0.6297 0.6372 0.6403 0.6562 0.6982 0.7634 0.8306 0.8766 0.9041 0.9524 1.0484 1.1235 1.1088 1.4246 - 0.1344 0.1541 0.1751 0.2015 0.2334 0.2677 0.2996 0.3244 0.3396 0.3458 0.3469 0.3489 0.3572 0.3751 0.4020 0.4332 0.4620 0.4821 0.4906 0.4898 0.4865 0.4897 0.5061 0.5363 0.5740 0.6082 0.6295 0.6368 0.6401 0.6566 0.6991 0.7645 0.8315 0.8769 0.9044 0.9532 1.0493 1.1233 1.1089 1.4255 - 0.1334 0.1533 0.1748 0.2016 0.2338 0.2681 0.2998 0.3241 0.3388 0.3446 0.3457 0.3480 0.3568 0.3752 0.4024 0.4337 0.4622 0.4818 0.4898 0.4888 0.4857 0.4894 0.5064 0.5371 0.5748 0.6085 0.6292 0.6362 0.6398 0.6572 0.7007 0.7664 0.8328 0.8775 0.9049 0.9546 1.0509 1.1231 1.1090 1.4269 - 0.1321 0.1522 0.1743 0.2017 0.2343 0.2687 0.3000 0.3237 0.3377 0.3431 0.3441 0.3467 0.3563 0.3754 0.4031 0.4344 0.4624 0.4813 0.4887 0.4874 0.4846 0.4891 0.5070 0.5383 0.5758 0.6089 0.6287 0.6353 0.6394 0.6581 0.7029 0.7690 0.8347 0.8782 0.9056 0.9565 1.0530 1.1227 1.1093 1.4288 - 0.1305 0.1510 0.1737 0.2019 0.2351 0.2695 0.3003 0.3231 0.3362 0.3410 0.3421 0.3452 0.3557 0.3758 0.4040 0.4352 0.4626 0.4806 0.4871 0.4856 0.4833 0.4888 0.5079 0.5397 0.5772 0.6093 0.6280 0.6342 0.6390 0.6593 0.7057 0.7724 0.8370 0.8792 0.9066 0.9591 1.0557 1.1221 1.1097 1.4312 - 0.1286 0.1495 0.1732 0.2023 0.2360 0.2704 0.3005 0.3223 0.3343 0.3386 0.3397 0.3436 0.3551 0.3763 0.4051 0.4362 0.4628 0.4796 0.4852 0.4834 0.4818 0.4886 0.5090 0.5416 0.5787 0.6097 0.6272 0.6328 0.6386 0.6609 0.7093 0.7764 0.8397 0.8802 0.9079 0.9623 1.0589 1.1213 1.1104 1.4340 - 0.1264 0.1480 0.1727 0.2029 0.2371 0.2713 0.3005 0.3211 0.3320 0.3357 0.3370 0.3418 0.3546 0.3770 0.4064 0.4372 0.4628 0.4783 0.4829 0.4810 0.4801 0.4885 0.5104 0.5438 0.5804 0.6100 0.6260 0.6313 0.6383 0.6630 0.7135 0.7809 0.8427 0.8815 0.9095 0.9662 1.0626 1.1202 1.1115 1.4370 - 0.1241 0.1465 0.1724 0.2037 0.2384 0.2723 0.3005 0.3196 0.3293 0.3324 0.3340 0.3399 0.3543 0.3779 0.4079 0.4383 0.4626 0.4766 0.4802 0.4782 0.4785 0.4887 0.5122 0.5463 0.5823 0.6102 0.6246 0.6296 0.6381 0.6656 0.7184 0.7861 0.8459 0.8828 0.9115 0.9708 1.0666 1.1187 1.1130 1.4402 - 0.1218 0.1451 0.1723 0.2047 0.2398 0.2732 0.3001 0.3177 0.3261 0.3287 0.3309 0.3382 0.3542 0.3791 0.4095 0.4393 0.4622 0.4745 0.4771 0.4753 0.4769 0.4891 0.5144 0.5491 0.5842 0.6102 0.6229 0.6277 0.6382 0.6688 0.7240 0.7916 0.8492 0.8842 0.9140 0.9761 1.0708 1.1169 1.1152 1.4434 - 0.1194 0.1439 0.1725 0.2060 0.2414 0.2740 0.2995 0.3154 0.3225 0.3248 0.3277 0.3366 0.3544 0.3807 0.4113 0.4402 0.4614 0.4720 0.4737 0.4722 0.4755 0.4900 0.5171 0.5521 0.5860 0.6099 0.6210 0.6259 0.6386 0.6726 0.7302 0.7975 0.8526 0.8857 0.9170 0.9822 1.0753 1.1147 1.1181 1.4464 - 0.1172 0.1430 0.1731 0.2076 0.2430 0.2747 0.2984 0.3125 0.3185 0.3207 0.3246 0.3353 0.3550 0.3824 0.4131 0.4408 0.4601 0.4690 0.4699 0.4691 0.4744 0.4913 0.5201 0.5554 0.5878 0.6093 0.6188 0.6241 0.6395 0.6771 0.7369 0.8036 0.8559 0.8873 0.9206 0.9890 1.0797 1.1120 1.1220 1.4492 - 0.1152 0.1424 0.1740 0.2093 0.2446 0.2750 0.2969 0.3092 0.3142 0.3165 0.3217 0.3344 0.3560 0.3845 0.4149 0.4412 0.4584 0.4655 0.4659 0.4661 0.4737 0.4931 0.5236 0.5587 0.5893 0.6084 0.6164 0.6225 0.6410 0.6824 0.7442 0.8097 0.8590 0.8891 0.9249 0.9964 1.0840 1.1090 1.1270 1.4514 - 0.1135 0.1422 0.1753 0.2113 0.2461 0.2750 0.2949 0.3054 0.3096 0.3123 0.3192 0.3339 0.3573 0.3867 0.4166 0.4411 0.4562 0.4617 0.4617 0.4633 0.4734 0.4954 0.5274 0.5621 0.5905 0.6071 0.6138 0.6212 0.6432 0.6883 0.7518 0.8157 0.8620 0.8911 0.9299 1.0045 1.0880 1.1056 1.1333 1.4530 - 0.1122 0.1425 0.1769 0.2133 0.2473 0.2745 0.2923 0.3012 0.3048 0.3083 0.3170 0.3340 0.3591 0.3890 0.4180 0.4405 0.4534 0.4574 0.4575 0.4609 0.4737 0.4983 0.5314 0.5653 0.5913 0.6054 0.6113 0.6204 0.6462 0.6950 0.7596 0.8215 0.8646 0.8934 0.9357 1.0130 1.0915 1.1021 1.1410 1.4537 - 0.1114 0.1433 0.1788 0.2153 0.2483 0.2735 0.2892 0.2967 0.3000 0.3046 0.3153 0.3345 0.3613 0.3914 0.4192 0.4394 0.4500 0.4528 0.4534 0.4589 0.4746 0.5017 0.5356 0.5682 0.5917 0.6034 0.6088 0.6202 0.6500 0.7022 0.7675 0.8269 0.8670 0.8959 0.9423 1.0219 1.0945 1.0984 1.1503 1.4534 - 0.1111 0.1445 0.1809 0.2172 0.2488 0.2719 0.2856 0.2918 0.2953 0.3013 0.3143 0.3357 0.3637 0.3936 0.4198 0.4378 0.4462 0.4481 0.4496 0.4574 0.4761 0.5054 0.5398 0.5709 0.5916 0.6012 0.6066 0.6207 0.6546 0.7100 0.7754 0.8319 0.8692 0.8990 0.9497 1.0310 1.0967 1.0949 1.1613 1.4518 - 0.1112 0.1461 0.1832 0.2189 0.2488 0.2698 0.2815 0.2869 0.2908 0.2985 0.3138 0.3373 0.3663 0.3957 0.4200 0.4355 0.4420 0.4434 0.4461 0.4566 0.4783 0.5095 0.5439 0.5730 0.5910 0.5988 0.6048 0.6220 0.6601 0.7182 0.7830 0.8363 0.8711 0.9025 0.9579 1.0400 1.0981 1.0918 1.1740 1.4488 - 0.1119 0.1480 0.1854 0.2203 0.2484 0.2671 0.2771 0.2819 0.2866 0.2964 0.3140 0.3393 0.3689 0.3974 0.4196 0.4327 0.4375 0.4387 0.4431 0.4564 0.4809 0.5138 0.5477 0.5746 0.5899 0.5963 0.6035 0.6243 0.6665 0.7267 0.7901 0.8400 0.8728 0.9066 0.9666 1.0487 1.0986 1.0892 1.1884 1.4443 - 0.1130 0.1502 0.1876 0.2213 0.2474 0.2639 0.2725 0.2771 0.2830 0.2948 0.3147 0.3416 0.3715 0.3987 0.4186 0.4294 0.4328 0.4343 0.4407 0.4569 0.4841 0.5181 0.5511 0.5756 0.5885 0.5940 0.6029 0.6274 0.6735 0.7352 0.7968 0.8432 0.8746 0.9112 0.9759 1.0570 1.0983 1.0875 1.2043 1.4381 - 0.1145 0.1524 0.1896 0.2219 0.2458 0.2604 0.2677 0.2725 0.2798 0.2939 0.3160 0.3442 0.3738 0.3995 0.4171 0.4256 0.4281 0.4303 0.4389 0.4581 0.4876 0.5223 0.5540 0.5760 0.5867 0.5918 0.6030 0.6315 0.6810 0.7436 0.8028 0.8458 0.8763 0.9165 0.9855 1.0645 1.0972 1.0869 1.2215 1.4301 - 0.1163 0.1547 0.1913 0.2219 0.2438 0.2565 0.2630 0.2683 0.2773 0.2936 0.3177 0.3468 0.3759 0.3998 0.4150 0.4216 0.4235 0.4268 0.4378 0.4599 0.4913 0.5262 0.5564 0.5759 0.5846 0.5900 0.6039 0.6364 0.6890 0.7518 0.8082 0.8479 0.8782 0.9224 0.9952 1.0712 1.0953 1.0877 1.2397 1.4205 - 0.1182 0.1569 0.1926 0.2215 0.2413 0.2525 0.2585 0.2645 0.2754 0.2939 0.3197 0.3494 0.3777 0.3996 0.4125 0.4175 0.4191 0.4238 0.4374 0.4621 0.4952 0.5298 0.5581 0.5752 0.5825 0.5887 0.6056 0.6420 0.6972 0.7595 0.8128 0.8496 0.8804 0.9288 1.0048 1.0769 1.0929 1.0898 1.2587 1.4091 - 0.1203 0.1589 0.1936 0.2207 0.2385 0.2483 0.2542 0.2613 0.2741 0.2947 0.3219 0.3518 0.3790 0.3989 0.4097 0.4133 0.4151 0.4215 0.4377 0.4647 0.4990 0.5330 0.5593 0.5741 0.5804 0.5878 0.6081 0.6482 0.7054 0.7667 0.8168 0.8510 0.8828 0.9356 1.0141 1.0814 1.0902 1.0936 1.2778 1.3962 - 0.1223 0.1607 0.1941 0.2194 0.2355 0.2443 0.2503 0.2586 0.2733 0.2958 0.3242 0.3540 0.3798 0.3977 0.4066 0.4093 0.4115 0.4198 0.4385 0.4676 0.5026 0.5357 0.5599 0.5727 0.5784 0.5875 0.6112 0.6548 0.7135 0.7733 0.8201 0.8521 0.8856 0.9426 1.0228 1.0849 1.0873 1.0988 1.2968 1.3818 - 0.1242 0.1622 0.1943 0.2179 0.2324 0.2404 0.2468 0.2565 0.2731 0.2973 0.3265 0.3559 0.3803 0.3962 0.4034 0.4055 0.4085 0.4187 0.4397 0.4706 0.5060 0.5379 0.5600 0.5710 0.5767 0.5878 0.6148 0.6616 0.7213 0.7792 0.8228 0.8532 0.8887 0.9498 1.0309 1.0873 1.0845 1.1054 1.3151 1.3663 - 0.1260 0.1634 0.1942 0.2161 0.2292 0.2368 0.2437 0.2548 0.2732 0.2989 0.3286 0.3574 0.3803 0.3944 0.4002 0.4019 0.4059 0.4181 0.4413 0.4736 0.5090 0.5396 0.5597 0.5693 0.5752 0.5885 0.6189 0.6684 0.7286 0.7844 0.8250 0.8543 0.8921 0.9569 1.0381 1.0887 1.0819 1.1133 1.3324 1.3500 - 0.1276 0.1643 0.1937 0.2141 0.2262 0.2335 0.2411 0.2537 0.2737 0.3005 0.3306 0.3587 0.3800 0.3924 0.3971 0.3987 0.4039 0.4180 0.4431 0.4766 0.5117 0.5408 0.5590 0.5675 0.5740 0.5896 0.6232 0.6750 0.7353 0.7889 0.8268 0.8554 0.8956 0.9637 1.0444 1.0894 1.0797 1.1221 1.3482 1.3333 - 0.1290 0.1650 0.1931 0.2121 0.2233 0.2306 0.2390 0.2529 0.2744 0.3022 0.3323 0.3596 0.3795 0.3904 0.3941 0.3960 0.4023 0.4182 0.4450 0.4793 0.5140 0.5416 0.5582 0.5658 0.5731 0.5911 0.6276 0.6813 0.7413 0.7928 0.8283 0.8566 0.8993 0.9702 1.0498 1.0893 1.0779 1.1314 1.3622 1.3165 - 0.1302 0.1654 0.1923 0.2102 0.2207 0.2280 0.2372 0.2525 0.2752 0.3038 0.3338 0.3602 0.3788 0.3883 0.3915 0.3936 0.4011 0.4187 0.4470 0.4818 0.5159 0.5421 0.5572 0.5643 0.5725 0.5928 0.6318 0.6871 0.7466 0.7960 0.8295 0.8578 0.9029 0.9761 1.0543 1.0888 1.0766 1.1410 1.3744 1.3002 - 0.1311 0.1656 0.1915 0.2084 0.2184 0.2259 0.2359 0.2523 0.2761 0.3052 0.3351 0.3606 0.3779 0.3864 0.3891 0.3916 0.4003 0.4194 0.4488 0.4840 0.5174 0.5424 0.5562 0.5630 0.5722 0.5945 0.6358 0.6923 0.7512 0.7987 0.8305 0.8590 0.9063 0.9814 1.0580 1.0879 1.0758 1.1502 1.3846 1.2848 - 0.1318 0.1656 0.1907 0.2068 0.2164 0.2241 0.2348 0.2522 0.2769 0.3064 0.3361 0.3608 0.3771 0.3847 0.3871 0.3900 0.3998 0.4201 0.4505 0.4858 0.5186 0.5424 0.5553 0.5618 0.5720 0.5963 0.6394 0.6968 0.7551 0.8009 0.8314 0.8602 0.9095 0.9860 1.0608 1.0869 1.0754 1.1589 1.3928 1.2708 - 0.1324 0.1656 0.1899 0.2054 0.2147 0.2227 0.2341 0.2523 0.2776 0.3074 0.3368 0.3609 0.3763 0.3833 0.3854 0.3888 0.3995 0.4208 0.4519 0.4873 0.5196 0.5424 0.5544 0.5609 0.5720 0.5978 0.6426 0.7005 0.7582 0.8026 0.8320 0.8613 0.9122 0.9897 1.0630 1.0859 1.0752 1.1665 1.3992 1.2586 - 0.1328 0.1656 0.1892 0.2042 0.2134 0.2216 0.2335 0.2524 0.2783 0.3082 0.3374 0.3609 0.3756 0.3821 0.3841 0.3879 0.3993 0.4215 0.4531 0.4885 0.5202 0.5422 0.5537 0.5602 0.5721 0.5992 0.6451 0.7035 0.7606 0.8039 0.8326 0.8623 0.9145 0.9927 1.0646 1.0850 1.0753 1.1728 1.4040 1.2487 - 0.1331 0.1655 0.1887 0.2034 0.2125 0.2209 0.2332 0.2525 0.2787 0.3088 0.3378 0.3608 0.3751 0.3812 0.3832 0.3873 0.3992 0.4220 0.4539 0.4894 0.5207 0.5421 0.5532 0.5597 0.5722 0.6002 0.6469 0.7056 0.7623 0.8048 0.8329 0.8630 0.9162 0.9948 1.0656 1.0844 1.0754 1.1774 1.4072 1.2413 - 0.1332 0.1654 0.1884 0.2029 0.2120 0.2204 0.2330 0.2526 0.2790 0.3092 0.3380 0.3608 0.3748 0.3807 0.3827 0.3869 0.3992 0.4223 0.4544 0.4899 0.5209 0.5421 0.5529 0.5594 0.5722 0.6008 0.6480 0.7069 0.7633 0.8053 0.8332 0.8634 0.9172 0.9961 1.0662 1.0839 1.0756 1.1803 1.4090 1.2368 - 0.1333 0.1654 0.1883 0.2027 0.2118 0.2203 0.2329 0.2526 0.2791 0.3093 0.3381 0.3608 0.3747 0.3805 0.3825 0.3868 0.3992 0.4224 0.4546 0.4900 0.5210 0.5420 0.5527 0.5594 0.5723 0.6010 0.6484 0.7073 0.7637 0.8055 0.8333 0.8636 0.9175 0.9965 1.0664 1.0838 1.0756 1.1813 1.4096 1.2353 - 0.1148 0.1419 0.1734 0.2087 0.2438 0.2741 0.2959 0.3082 0.3131 0.3155 0.3208 0.3335 0.3552 0.3837 0.4140 0.4400 0.4571 0.4641 0.4644 0.4649 0.4728 0.4926 0.5233 0.5583 0.5885 0.6071 0.6150 0.6216 0.6413 0.6839 0.7463 0.8114 0.8597 0.8896 0.9271 1.0007 1.0857 1.1050 1.1366 1.4583 - 0.1147 0.1419 0.1734 0.2087 0.2439 0.2741 0.2959 0.3081 0.3130 0.3153 0.3207 0.3335 0.3552 0.3837 0.4141 0.4400 0.4570 0.4640 0.4643 0.4648 0.4728 0.4927 0.5234 0.5584 0.5885 0.6071 0.6149 0.6216 0.6413 0.6840 0.7465 0.8115 0.8598 0.8897 0.9272 1.0009 1.0858 1.1049 1.1367 1.4582 - 0.1146 0.1418 0.1735 0.2088 0.2440 0.2742 0.2957 0.3078 0.3127 0.3150 0.3205 0.3334 0.3553 0.3839 0.4142 0.4400 0.4569 0.4637 0.4640 0.4646 0.4728 0.4929 0.5237 0.5587 0.5886 0.6070 0.6147 0.6215 0.6415 0.6844 0.7470 0.8120 0.8600 0.8898 0.9276 1.0015 1.0861 1.1046 1.1373 1.4581 - 0.1144 0.1418 0.1737 0.2091 0.2442 0.2742 0.2955 0.3074 0.3121 0.3145 0.3202 0.3334 0.3555 0.3842 0.4144 0.4401 0.4566 0.4632 0.4635 0.4643 0.4728 0.4931 0.5242 0.5591 0.5888 0.6068 0.6144 0.6213 0.6418 0.6852 0.7480 0.8127 0.8603 0.8900 0.9283 1.0025 1.0866 1.1042 1.1382 1.4579 - 0.1141 0.1418 0.1739 0.2094 0.2444 0.2742 0.2952 0.3067 0.3113 0.3138 0.3197 0.3333 0.3557 0.3846 0.4147 0.4400 0.4562 0.4626 0.4628 0.4638 0.4727 0.4935 0.5248 0.5596 0.5890 0.6066 0.6140 0.6211 0.6421 0.6862 0.7492 0.8137 0.8608 0.8904 0.9292 1.0039 1.0872 1.1036 1.1395 1.4576 - 0.1137 0.1417 0.1741 0.2098 0.2447 0.2742 0.2947 0.3059 0.3103 0.3129 0.3192 0.3332 0.3560 0.3850 0.4150 0.4400 0.4557 0.4617 0.4619 0.4632 0.4727 0.4941 0.5256 0.5603 0.5892 0.6063 0.6134 0.6209 0.6427 0.6875 0.7509 0.8150 0.8614 0.8908 0.9303 1.0056 1.0879 1.1028 1.1412 1.4572 - 0.1133 0.1417 0.1745 0.2103 0.2451 0.2741 0.2942 0.3049 0.3091 0.3119 0.3186 0.3331 0.3564 0.3856 0.4155 0.4400 0.4551 0.4607 0.4608 0.4625 0.4727 0.4947 0.5266 0.5612 0.5894 0.6059 0.6128 0.6206 0.6433 0.6891 0.7529 0.8164 0.8621 0.8914 0.9318 1.0078 1.0888 1.1019 1.1433 1.4566 - 0.1129 0.1417 0.1749 0.2109 0.2455 0.2740 0.2935 0.3037 0.3077 0.3106 0.3179 0.3331 0.3569 0.3863 0.4159 0.4398 0.4543 0.4594 0.4596 0.4618 0.4727 0.4956 0.5278 0.5621 0.5897 0.6054 0.6120 0.6203 0.6442 0.6911 0.7551 0.8181 0.8629 0.8921 0.9335 1.0103 1.0897 1.1008 1.1459 1.4559 - 0.1124 0.1418 0.1755 0.2116 0.2459 0.2739 0.2926 0.3023 0.3061 0.3093 0.3171 0.3331 0.3575 0.3871 0.4164 0.4397 0.4534 0.4580 0.4582 0.4610 0.4728 0.4965 0.5292 0.5632 0.5900 0.6049 0.6112 0.6201 0.6452 0.6933 0.7577 0.8200 0.8637 0.8928 0.9355 1.0131 1.0907 1.0996 1.1490 1.4548 - 0.1120 0.1419 0.1761 0.2123 0.2464 0.2737 0.2917 0.3008 0.3044 0.3079 0.3164 0.3332 0.3582 0.3879 0.4169 0.4394 0.4523 0.4564 0.4567 0.4601 0.4730 0.4976 0.5307 0.5643 0.5902 0.6042 0.6103 0.6199 0.6464 0.6958 0.7606 0.8220 0.8646 0.8937 0.9378 1.0163 1.0918 1.0983 1.1525 1.4536 - 0.1116 0.1422 0.1768 0.2131 0.2468 0.2734 0.2905 0.2990 0.3025 0.3064 0.3157 0.3333 0.3590 0.3889 0.4174 0.4390 0.4511 0.4547 0.4551 0.4593 0.4733 0.4989 0.5323 0.5655 0.5904 0.6034 0.6093 0.6198 0.6478 0.6986 0.7636 0.8241 0.8655 0.8947 0.9404 1.0197 1.0928 1.0969 1.1566 1.4519 - 0.1112 0.1425 0.1776 0.2140 0.2472 0.2730 0.2892 0.2971 0.3005 0.3049 0.3150 0.3336 0.3599 0.3898 0.4178 0.4386 0.4497 0.4528 0.4534 0.4585 0.4737 0.5003 0.5340 0.5667 0.5905 0.6026 0.6083 0.6198 0.6495 0.7017 0.7669 0.8263 0.8664 0.8959 0.9433 1.0234 1.0938 1.0954 1.1612 1.4499 - 0.1109 0.1429 0.1784 0.2149 0.2475 0.2724 0.2878 0.2951 0.2984 0.3033 0.3144 0.3340 0.3609 0.3908 0.4182 0.4379 0.4481 0.4508 0.4516 0.4578 0.4743 0.5019 0.5359 0.5679 0.5905 0.6016 0.6073 0.6199 0.6514 0.7050 0.7703 0.8284 0.8674 0.8972 0.9465 1.0274 1.0947 1.0939 1.1664 1.4475 - 0.1107 0.1434 0.1794 0.2157 0.2478 0.2717 0.2861 0.2929 0.2963 0.3018 0.3139 0.3345 0.3619 0.3919 0.4185 0.4372 0.4463 0.4486 0.4499 0.4571 0.4750 0.5036 0.5378 0.5691 0.5905 0.6006 0.6063 0.6201 0.6536 0.7086 0.7738 0.8306 0.8683 0.8986 0.9500 1.0315 1.0954 1.0924 1.1721 1.4447 - 0.1107 0.1441 0.1804 0.2166 0.2480 0.2709 0.2844 0.2906 0.2941 0.3003 0.3135 0.3351 0.3631 0.3929 0.4187 0.4363 0.4445 0.4464 0.4481 0.4566 0.4759 0.5055 0.5397 0.5702 0.5903 0.5995 0.6053 0.6206 0.6560 0.7124 0.7774 0.8327 0.8692 0.9002 0.9538 1.0357 1.0961 1.0909 1.1784 1.4413 - 0.1107 0.1448 0.1815 0.2175 0.2481 0.2699 0.2825 0.2882 0.2919 0.2989 0.3133 0.3358 0.3644 0.3939 0.4188 0.4352 0.4424 0.4441 0.4464 0.4561 0.4769 0.5075 0.5417 0.5712 0.5900 0.5983 0.6045 0.6213 0.6587 0.7163 0.7810 0.8348 0.8701 0.9020 0.9578 1.0400 1.0965 1.0896 1.1853 1.4374 - 0.1109 0.1456 0.1826 0.2183 0.2480 0.2688 0.2804 0.2857 0.2897 0.2977 0.3131 0.3367 0.3656 0.3949 0.4188 0.4340 0.4403 0.4417 0.4448 0.4559 0.4781 0.5095 0.5436 0.5722 0.5896 0.5971 0.6037 0.6222 0.6616 0.7204 0.7846 0.8367 0.8710 0.9039 0.9621 1.0443 1.0967 1.0884 1.1927 1.4329 - 0.1111 0.1466 0.1838 0.2190 0.2478 0.2675 0.2782 0.2833 0.2877 0.2965 0.3132 0.3377 0.3670 0.3957 0.4187 0.4326 0.4381 0.4394 0.4433 0.4558 0.4794 0.5116 0.5455 0.5730 0.5890 0.5959 0.6031 0.6233 0.6648 0.7246 0.7882 0.8385 0.8719 0.9060 0.9666 1.0486 1.0968 1.0873 1.2006 1.4279 - 0.1115 0.1476 0.1849 0.2196 0.2475 0.2661 0.2760 0.2808 0.2857 0.2956 0.3134 0.3388 0.3683 0.3965 0.4184 0.4311 0.4358 0.4371 0.4419 0.4558 0.4808 0.5138 0.5474 0.5736 0.5884 0.5947 0.6026 0.6247 0.6681 0.7288 0.7916 0.8402 0.8727 0.9083 0.9712 1.0527 1.0966 1.0866 1.2089 1.4224 - 0.1120 0.1486 0.1860 0.2202 0.2471 0.2646 0.2737 0.2784 0.2838 0.2947 0.3137 0.3399 0.3696 0.3972 0.4179 0.4295 0.4334 0.4349 0.4407 0.4561 0.4824 0.5159 0.5491 0.5741 0.5877 0.5935 0.6023 0.6263 0.6717 0.7331 0.7949 0.8417 0.8736 0.9108 0.9759 1.0568 1.0962 1.0861 1.2175 1.4163 - 0.1127 0.1497 0.1870 0.2206 0.2465 0.2629 0.2714 0.2760 0.2820 0.2941 0.3142 0.3411 0.3708 0.3978 0.4173 0.4277 0.4311 0.4328 0.4396 0.4565 0.4841 0.5181 0.5507 0.5745 0.5868 0.5924 0.6022 0.6281 0.6753 0.7373 0.7980 0.8431 0.8745 0.9133 0.9807 1.0606 1.0957 1.0858 1.2264 1.4097 - 0.1134 0.1508 0.1880 0.2210 0.2458 0.2612 0.2691 0.2737 0.2804 0.2936 0.3148 0.3424 0.3720 0.3982 0.4166 0.4259 0.4287 0.4308 0.4387 0.4570 0.4858 0.5201 0.5521 0.5747 0.5860 0.5914 0.6023 0.6301 0.6791 0.7414 0.8009 0.8443 0.8753 0.9160 0.9855 1.0642 1.0949 1.0860 1.2355 1.4026 - 0.1141 0.1519 0.1890 0.2212 0.2450 0.2595 0.2668 0.2715 0.2790 0.2932 0.3154 0.3436 0.3731 0.3985 0.4158 0.4241 0.4265 0.4290 0.4380 0.4577 0.4876 0.5221 0.5534 0.5748 0.5850 0.5904 0.6025 0.6323 0.6829 0.7454 0.8036 0.8454 0.8762 0.9188 0.9902 1.0675 1.0940 1.0864 1.2447 1.3952 - 0.1149 0.1530 0.1898 0.2213 0.2441 0.2577 0.2646 0.2695 0.2778 0.2930 0.3162 0.3448 0.3741 0.3987 0.4148 0.4222 0.4243 0.4273 0.4375 0.4585 0.4893 0.5240 0.5546 0.5747 0.5841 0.5895 0.6029 0.6347 0.6867 0.7493 0.8061 0.8464 0.8772 0.9217 0.9949 1.0705 1.0930 1.0872 1.2538 1.3874 - 0.1157 0.1540 0.1906 0.2212 0.2431 0.2559 0.2624 0.2676 0.2767 0.2930 0.3170 0.3460 0.3751 0.3988 0.4138 0.4203 0.4222 0.4257 0.4371 0.4594 0.4911 0.5258 0.5556 0.5746 0.5831 0.5888 0.6035 0.6371 0.6904 0.7529 0.8084 0.8472 0.8781 0.9246 0.9993 1.0733 1.0919 1.0884 1.2628 1.3794 - 0.1166 0.1550 0.1912 0.2211 0.2421 0.2541 0.2604 0.2659 0.2758 0.2930 0.3179 0.3472 0.3759 0.3987 0.4128 0.4185 0.4203 0.4244 0.4369 0.4604 0.4927 0.5274 0.5564 0.5743 0.5822 0.5882 0.6042 0.6395 0.6940 0.7564 0.8104 0.8479 0.8791 0.9275 1.0036 1.0757 1.0908 1.0897 1.2715 1.3714 - 0.1174 0.1559 0.1918 0.2210 0.2410 0.2524 0.2585 0.2644 0.2750 0.2932 0.3187 0.3483 0.3766 0.3986 0.4117 0.4168 0.4185 0.4232 0.4368 0.4614 0.4944 0.5289 0.5570 0.5740 0.5813 0.5877 0.6051 0.6420 0.6975 0.7595 0.8122 0.8486 0.8800 0.9303 1.0076 1.0777 1.0897 1.0914 1.2798 1.3634 - 0.1182 0.1568 0.1922 0.2207 0.2400 0.2508 0.2568 0.2630 0.2744 0.2934 0.3196 0.3493 0.3772 0.3984 0.4106 0.4152 0.4168 0.4222 0.4368 0.4624 0.4959 0.5302 0.5576 0.5736 0.5805 0.5873 0.6060 0.6444 0.7007 0.7624 0.8138 0.8491 0.8810 0.9330 1.0113 1.0795 1.0885 1.0932 1.2876 1.3555 - 0.1189 0.1575 0.1926 0.2204 0.2390 0.2493 0.2552 0.2618 0.2739 0.2937 0.3204 0.3501 0.3776 0.3981 0.4096 0.4136 0.4154 0.4213 0.4368 0.4633 0.4972 0.5314 0.5580 0.5732 0.5797 0.5870 0.6069 0.6467 0.7038 0.7650 0.8152 0.8496 0.8819 0.9356 1.0147 1.0810 1.0875 1.0951 1.2948 1.3480 - 0.1196 0.1582 0.1929 0.2201 0.2381 0.2480 0.2538 0.2608 0.2735 0.2940 0.3211 0.3509 0.3780 0.3979 0.4086 0.4122 0.4141 0.4206 0.4370 0.4642 0.4985 0.5324 0.5583 0.5727 0.5790 0.5868 0.6078 0.6489 0.7065 0.7673 0.8164 0.8500 0.8828 0.9379 1.0177 1.0823 1.0865 1.0970 1.3013 1.3409 - 0.1202 0.1588 0.1931 0.2198 0.2372 0.2468 0.2526 0.2599 0.2732 0.2943 0.3218 0.3516 0.3783 0.3976 0.4077 0.4110 0.4130 0.4201 0.4372 0.4651 0.4996 0.5332 0.5585 0.5723 0.5784 0.5867 0.6087 0.6509 0.7089 0.7693 0.8174 0.8503 0.8837 0.9401 1.0204 1.0833 1.0856 1.0989 1.3071 1.3345 - 0.1207 0.1592 0.1933 0.2195 0.2364 0.2457 0.2516 0.2592 0.2730 0.2946 0.3224 0.3522 0.3786 0.3973 0.4069 0.4100 0.4120 0.4196 0.4374 0.4658 0.5006 0.5339 0.5587 0.5720 0.5779 0.5866 0.6096 0.6526 0.7110 0.7710 0.8182 0.8506 0.8844 0.9420 1.0226 1.0840 1.0849 1.1007 1.3121 1.3287 - 0.1212 0.1596 0.1934 0.2192 0.2358 0.2448 0.2507 0.2587 0.2728 0.2948 0.3229 0.3527 0.3788 0.3970 0.4062 0.4091 0.4113 0.4193 0.4376 0.4665 0.5013 0.5345 0.5588 0.5716 0.5775 0.5866 0.6103 0.6541 0.7128 0.7724 0.8189 0.8509 0.8851 0.9436 1.0245 1.0846 1.0842 1.1022 1.3162 1.3239 - 0.1215 0.1599 0.1935 0.2190 0.2353 0.2442 0.2501 0.2582 0.2727 0.2951 0.3233 0.3530 0.3789 0.3968 0.4057 0.4084 0.4107 0.4190 0.4377 0.4670 0.5019 0.5349 0.5588 0.5714 0.5771 0.5866 0.6109 0.6552 0.7142 0.7735 0.8194 0.8511 0.8856 0.9448 1.0259 1.0851 1.0837 1.1035 1.3195 1.3199 - 0.1218 0.1601 0.1935 0.2188 0.2349 0.2437 0.2496 0.2579 0.2727 0.2952 0.3236 0.3533 0.3790 0.3966 0.4053 0.4079 0.4103 0.4188 0.4379 0.4674 0.5024 0.5352 0.5589 0.5712 0.5769 0.5866 0.6113 0.6561 0.7152 0.7742 0.8197 0.8512 0.8860 0.9457 1.0270 1.0854 1.0834 1.1045 1.3218 1.3171 - 0.1219 0.1603 0.1936 0.2187 0.2346 0.2434 0.2493 0.2577 0.2726 0.2953 0.3238 0.3534 0.3790 0.3965 0.4051 0.4076 0.4100 0.4187 0.4380 0.4676 0.5026 0.5354 0.5589 0.5710 0.5768 0.5866 0.6116 0.6566 0.7158 0.7747 0.8199 0.8513 0.8862 0.9463 1.0276 1.0856 1.0832 1.1051 1.3232 1.3153 - 0.1220 0.1603 0.1936 0.2187 0.2346 0.2433 0.2492 0.2577 0.2726 0.2953 0.3238 0.3535 0.3790 0.3965 0.4050 0.4075 0.4099 0.4187 0.4380 0.4677 0.5027 0.5355 0.5589 0.5710 0.5767 0.5866 0.6117 0.6568 0.7160 0.7748 0.8200 0.8513 0.8863 0.9465 1.0278 1.0856 1.0831 1.1053 1.3237 1.3148 diff --git a/fix_atm/product/gfs_collective1.list b/fix_atm/product/gfs_collective1.list deleted file mode 100755 index 6a4a88c2e9..0000000000 --- a/fix_atm/product/gfs_collective1.list +++ /dev/null @@ -1,293 +0,0 @@ -000052 -000053 -000054 -000055 -000072 -000076 -000085 -000151 -000192 -000193 -000195 -000212 -000233 -000266 -000267 -000366 -000367 -000401 -000405 -000406 -000501 -000628 -000647 -000648 -000705 -000706 -000707 -000708 -000709 -000711 -000712 -000713 -000720 -000722 -000735 -000736 -000744 -000745 -000746 -000747 -000802 -000816 -000817 -000819 -000822 -000823 -000943 -000944 -000945 -000946 -000947 -041001 -041002 -041004 -041006 -041010 -042001 -042003 -044014 -072327 -090014 -090015 -408290 -409540 -409900 -421820 -431500 -444540 -619670 -722010 -722016 -722020 -722024 -722025 -722029 -722030 -722039 -722040 -722045 -722050 -722056 -722060 -722067 -722070 -722079 -722080 -722100 -722103 -722106 -722108 -722110 -722115 -722116 -722120 -722130 -722136 -722137 -722140 -722146 -722150 -722160 -722166 -722170 -722180 -722190 -722195 -722196 -722200 -722210 -722223 -722230 -722235 -722245 -722250 -722255 -722260 -722268 -722280 -722286 -722287 -722290 -722300 -722330 -722340 -722348 -723013 -723030 -723035 -723040 -723050 -723060 -723065 -723066 -723068 -723069 -723070 -723080 -723090 -723095 -723100 -723106 -723110 -723119 -723120 -723125 -723140 -723145 -723150 -723170 -723183 -723193 -723230 -723235 -723240 -723260 -723265 -723270 -723320 -723340 -723346 -724106 -727960 -746620 -746716 -746943 -747685 -747690 -747800 -747810 -747900 -747910 -747915 -747940 -765906 -766440 -766493 -780160 -780610 -780620 -780700 -780730 -780920 -782210 -782240 -782290 -782550 -782560 -782593 -782640 -782670 -782680 -782684 -783334 -783460 -783570 -783670 -783840 -783880 -783970 -784090 -784390 -784570 -784600 -784790 -784850 -784860 -785140 -785145 -785203 -785260 -785430 -785470 -785500 -785830 -786150 -786370 -786500 -786630 -786660 -787000 -787010 -787030 -787050 -787060 -787070 -787080 -787110 -787140 -787170 -787190 -787200 -787240 -787300 -787410 -787613 -787620 -787625 -787670 -787740 -787838 -787920 -787930 -787935 -787950 -788067 -788460 -788564 -788580 -788590 -788620 -788660 -788730 -788940 -788970 -789050 -789060 -789070 -789820 -789880 -789900 -800010 -800090 -800220 -800280 -800940 -801100 -801120 -802100 -802220 -804070 -804150 -820220 -828240 -840080 -840710 -842030 -845010 -846280 -851540 -852010 -855740 -856290 -874800 -980091 -994040 -999040 -999260 -999290 -999300 -999320 -999400 -999909 -999911 diff --git a/fix_atm/product/gfs_collective2.list b/fix_atm/product/gfs_collective2.list deleted file mode 100755 index 0a307b31a0..0000000000 --- a/fix_atm/product/gfs_collective2.list +++ /dev/null @@ -1,385 +0,0 @@ -000065 -000081 -000082 -000091 -000190 -000191 -000194 -000196 -000197 -000198 -000199 -000200 -000213 -000234 -000235 -000236 -000239 -000240 -000241 -000251 -000252 -000253 -000257 -000258 -000261 -000280 -000282 -000283 -000284 -000299 -000355 -000356 -000386 -000387 -000390 -000397 -000398 -000399 -000502 -000625 -000627 -000644 -000645 -000646 -000649 -000658 -000659 -000661 -000662 -000663 -000664 -000665 -000667 -000673 -000674 -000675 -000676 -000683 -000684 -000698 -000699 -000721 -000737 -000738 -000739 -000740 -000741 -000742 -000753 -000754 -000805 -000813 -000821 -000847 -000851 -000852 -000853 -000854 -000939 -000940 -000941 -000942 -001006 -028952 -035363 -035394 -044004 -044005 -044008 -044009 -044011 -044017 -044025 -044027 -044065 -045001 -045002 -045003 -045004 -045005 -045006 -045007 -045008 -045012 -045132 -045139 -045142 -072524 -099002 -099006 -099007 -099008 -296340 -368700 -383531 -384570 -420200 -710810 -710820 -711510 -712630 -713680 -713950 -713970 -713990 -715380 -716000 -716010 -716030 -716090 -716230 -716240 -716250 -716270 -716278 -716280 -716290 -716300 -716330 -717010 -717050 -717060 -717070 -717140 -717220 -717250 -717310 -717380 -717390 -717460 -717490 -718110 -718160 -718220 -718230 -718340 -718360 -718365 -718480 -719060 -719070 -719090 -719150 -719170 -723086 -723180 -723489 -724010 -724016 -724017 -724020 -724030 -724040 -724045 -724050 -724060 -724066 -724067 -724070 -724075 -724080 -724085 -724089 -724095 -724096 -724097 -724100 -724110 -724120 -724125 -724127 -724140 -724170 -724175 -724176 -724177 -724210 -724220 -724230 -724236 -724237 -724240 -724243 -724250 -724260 -724273 -724275 -724280 -724285 -724286 -724290 -724297 -724320 -724330 -724336 -724350 -724373 -724375 -724380 -724386 -724390 -724397 -724398 -725010 -725020 -725025 -725030 -725035 -725036 -725037 -725038 -725040 -725045 -725046 -725058 -725060 -725063 -725064 -725065 -725067 -725070 -725074 -725080 -725084 -725085 -725087 -725088 -725090 -725095 -725103 -725115 -725116 -725125 -725126 -725127 -725128 -725130 -725140 -725145 -725150 -725155 -725156 -725165 -725170 -725180 -725185 -725186 -725190 -725197 -725200 -725204 -725205 -725207 -725210 -725235 -725240 -725246 -725250 -725260 -725266 -725267 -725280 -725287 -725290 -725300 -725305 -725315 -725316 -725320 -725326 -725330 -725336 -725337 -725340 -725346 -725350 -725360 -725366 -725370 -725375 -725384 -725387 -725390 -725395 -725396 -725430 -726050 -726055 -726060 -726064 -726077 -726079 -726080 -726083 -726088 -726115 -726116 -726134 -726140 -726145 -726160 -726170 -726180 -726184 -726185 -726190 -726196 -726220 -726223 -726227 -726228 -726320 -726340 -726350 -726357 -726360 -726370 -726375 -726379 -726384 -726385 -726387 -726390 -726400 -726410 -726415 -726450 -726455 -726456 -726463 -726465 -726480 -726487 -727033 -727119 -727120 -727130 -727340 -727344 -727347 -727415 -727430 -727435 -727437 -727440 -743700 -743890 -743945 -744570 -744655 -744660 -744680 -744860 -744900 -744904 -744910 -744915 -744940 -744994 -745600 -878600 -999080 -999240 -999550 -999560 diff --git a/fix_atm/product/gfs_collective3.list b/fix_atm/product/gfs_collective3.list deleted file mode 100755 index 91d7bc8741..0000000000 --- a/fix_atm/product/gfs_collective3.list +++ /dev/null @@ -1,216 +0,0 @@ -000028 -000068 -000162 -000254 -000262 -000263 -000264 -000265 -000268 -000269 -000296 -000297 -000360 -000361 -000363 -000364 -000365 -000402 -000403 -000404 -000604 -000609 -000610 -000611 -000612 -000643 -000694 -000695 -000696 -000697 -000704 -000710 -000714 -000715 -000743 -000748 -000749 -000751 -000752 -000764 -000804 -000807 -000810 -000811 -000814 -042002 -042019 -042020 -072253 -072356 -090001 -090002 -090003 -090004 -090005 -090006 -090007 -090008 -090009 -090010 -090011 -090012 -090013 -090016 -486010 -486470 -486870 -488200 -489000 -562940 -570360 -722310 -722314 -722315 -722317 -722350 -722356 -722358 -722359 -722390 -722400 -722405 -722410 -722420 -722430 -722435 -722445 -722446 -722448 -722470 -722480 -722486 -722487 -722490 -722500 -722505 -722506 -722510 -722517 -722520 -722527 -722530 -722540 -722550 -722560 -722576 -722583 -722587 -722590 -722596 -722600 -722610 -722620 -722630 -722636 -722640 -722650 -722656 -722660 -722670 -722680 -722687 -722688 -722690 -722695 -722700 -722710 -722725 -723400 -723403 -723407 -723415 -723417 -723418 -723419 -723440 -723445 -723446 -723447 -723448 -723480 -723490 -723510 -723525 -723526 -723527 -723530 -723546 -723550 -723555 -723560 -723565 -723566 -723570 -723604 -723627 -723630 -723640 -723650 -723656 -723658 -723676 -723677 -746290 -746300 -746400 -746410 -746470 -746480 -746490 -747310 -747320 -747330 -747350 -747400 -747500 -747520 -747530 -760753 -762253 -762863 -763503 -763820 -763940 -763943 -763993 -764120 -764235 -764580 -764593 -764910 -764915 -765255 -765390 -765493 -765710 -766013 -766133 -766534 -766655 -766753 -766793 -766913 -767383 -767493 -767584 -768050 -768056 -768485 -769043 -786270 -786410 -786470 -967430 -999210 -999912 diff --git a/fix_atm/product/gfs_collective4.list b/fix_atm/product/gfs_collective4.list deleted file mode 100755 index 8e2346ac49..0000000000 --- a/fix_atm/product/gfs_collective4.list +++ /dev/null @@ -1,302 +0,0 @@ -000007 -000010 -000014 -000016 -000018 -000020 -000021 -000037 -000050 -000058 -000059 -000060 -000061 -000063 -000066 -000071 -000073 -000074 -000078 -000080 -000096 -000097 -000098 -000099 -000100 -000101 -000102 -000230 -000231 -000247 -000260 -000372 -000373 -000374 -000375 -000376 -000377 -000378 -000379 -000380 -000381 -000382 -000383 -000384 -000385 -000388 -000389 -000391 -000392 -000393 -000394 -000395 -000396 -000602 -000603 -000606 -000607 -000608 -000613 -000614 -000620 -000621 -000622 -000623 -000624 -000629 -000630 -000631 -000632 -000633 -000634 -000635 -000636 -000637 -000638 -000639 -000640 -000641 -000642 -000650 -000651 -000655 -000656 -000657 -000660 -000668 -000669 -000670 -000671 -000672 -000678 -000679 -000680 -000681 -000682 -000691 -000692 -000693 -000716 -000717 -000718 -000719 -000723 -000724 -000725 -000726 -000727 -000750 -000808 -000815 -000818 -000835 -000839 -000850 -072434 -072464 -099001 -443850 -710780 -710790 -711250 -711300 -718454 -718500 -718520 -718530 -718575 -718630 -718660 -718670 -718690 -719130 -719200 -719240 -719250 -719260 -723495 -724340 -724345 -724396 -724400 -724450 -724454 -724456 -724460 -724463 -724490 -724500 -724506 -724507 -724510 -724515 -724516 -724517 -724518 -724520 -724555 -724556 -724560 -724565 -724580 -724585 -724586 -724604 -724620 -724625 -724627 -724635 -724636 -724640 -724650 -724655 -724660 -724666 -724675 -724676 -724677 -724680 -724690 -724698 -724699 -724760 -724765 -724767 -724768 -724769 -725440 -725450 -725455 -725460 -725465 -725467 -725470 -725476 -725480 -725485 -725490 -725496 -725500 -725510 -725515 -725520 -725524 -725526 -725533 -725555 -725560 -725565 -725566 -725570 -725580 -725610 -725620 -725626 -725628 -725635 -725636 -725640 -725645 -725650 -725660 -725690 -725715 -725717 -725745 -725760 -725765 -726416 -726430 -726435 -726440 -726490 -726510 -726515 -726525 -726530 -726540 -726545 -726546 -726550 -726555 -726556 -726557 -726559 -726567 -726578 -726580 -726584 -726586 -726589 -726590 -726620 -726650 -726660 -726665 -726670 -726676 -726685 -726686 -726695 -726770 -727445 -727450 -727455 -727457 -727459 -727470 -727476 -727530 -727535 -727550 -727564 -727576 -727580 -727640 -727645 -727670 -727676 -727680 -727684 -727687 -742300 -743410 -743570 -744310 -744330 -744370 -744400 -744450 -744490 -744550 -745300 -745320 -745330 -745410 -745420 -745460 -745500 -745510 -745560 -999050 -999350 diff --git a/fix_atm/product/gfs_collective5.list b/fix_atm/product/gfs_collective5.list deleted file mode 100755 index 1cff3868e0..0000000000 --- a/fix_atm/product/gfs_collective5.list +++ /dev/null @@ -1,227 +0,0 @@ -000103 -000161 -000180 -000181 -000182 -000183 -000184 -000185 -000211 -000237 -000238 -000270 -000271 -000273 -000274 -000275 -000277 -000278 -000279 -000285 -000286 -000287 -000288 -000289 -000290 -000291 -000292 -000293 -000294 -000295 -000298 -000311 -000312 -000313 -000314 -000315 -000332 -000335 -000339 -000346 -000347 -000348 -000349 -000350 -000351 -000352 -000353 -000354 -000357 -000358 -000359 -000362 -000601 -000654 -000728 -000731 -000732 -000760 -000761 -000762 -000763 -000801 -000831 -000832 -000833 -000837 -000838 -000844 -000845 -000952 -000953 -000954 -000955 -000956 -000957 -000958 -000959 -000960 -046006 -046014 -046030 -046047 -046086 -072384 -450040 -466920 -469020 -471100 -471530 -476350 -476710 -477720 -545110 -548570 -583670 -722593 -722730 -722735 -722740 -722780 -722800 -722865 -722868 -722880 -722886 -722897 -722900 -722904 -722910 -722927 -722930 -722950 -722970 -722977 -723700 -723710 -723720 -723723 -723740 -723747 -723754 -723755 -723760 -723783 -723805 -723810 -723815 -723816 -723820 -723840 -723860 -723870 -723890 -723910 -723925 -723930 -723940 -723965 -724700 -724723 -724735 -724754 -724755 -724756 -724773 -724776 -724795 -724796 -724800 -724815 -724830 -724835 -724839 -724855 -724856 -724860 -724870 -724880 -724890 -724915 -724917 -724920 -724927 -724930 -724940 -724945 -724957 -725705 -725720 -725724 -725744 -725750 -725775 -725805 -725810 -725820 -725825 -725827 -725830 -725837 -725840 -725846 -725847 -725905 -725910 -725920 -725945 -725946 -725958 -740030 -746120 -747185 -747187 -747188 -760013 -760053 -761510 -761600 -762530 -762555 -762560 -764050 -764055 -764056 -914080 -914130 -915004 -915005 -915006 -915007 -915009 -941200 -946100 -983270 -984290 -988360 -999020 -999030 -999100 -999140 -999180 -999200 -999250 -999340 -999370 -999380 -999540 diff --git a/fix_atm/product/gfs_collective6.list b/fix_atm/product/gfs_collective6.list deleted file mode 100755 index dd086fa590..0000000000 --- a/fix_atm/product/gfs_collective6.list +++ /dev/null @@ -1,157 +0,0 @@ -000003 -000005 -000009 -000011 -000017 -000019 -000057 -000152 -000154 -000155 -000156 -000158 -000160 -000170 -000171 -000172 -000173 -000227 -000228 -000229 -000259 -000276 -000310 -000333 -000334 -000336 -000337 -000345 -000368 -000369 -000370 -000371 -000617 -000618 -000619 -000652 -000653 -000729 -000730 -000733 -000734 -000755 -000756 -000757 -000758 -000759 -000834 -000841 -000842 -000948 -000949 -000950 -000951 -046002 -046005 -046015 -046029 -072578 -072783 -319600 -503530 -710310 -710430 -710513 -710680 -710720 -711080 -711090 -711190 -711230 -711280 -712030 -714963 -717990 -718720 -718740 -718770 -718800 -718840 -718920 -718930 -718960 -719310 -719340 -719360 -719450 -719460 -725776 -725780 -725785 -725788 -725865 -725866 -725867 -725895 -725970 -726664 -726700 -726710 -726764 -726776 -726785 -726796 -726797 -726798 -726810 -726830 -726835 -726865 -726873 -726880 -726886 -726904 -726917 -726930 -726940 -726950 -726980 -726985 -726986 -726988 -727720 -727730 -727750 -727770 -727790 -727796 -727810 -727815 -727820 -727825 -727826 -727827 -727830 -727834 -727840 -727845 -727846 -727850 -727856 -727857 -727860 -727870 -727883 -727885 -727890 -727910 -727920 -727923 -727924 -727930 -727934 -727935 -727937 -727938 -727970 -727976 diff --git a/fix_atm/product/gfs_collective7.list b/fix_atm/product/gfs_collective7.list deleted file mode 100755 index adb0847b0a..0000000000 --- a/fix_atm/product/gfs_collective7.list +++ /dev/null @@ -1,58 +0,0 @@ -000308 -000309 -000330 -000331 -051001 -051002 -051003 -051004 -475800 -476860 -911650 -911780 -911820 -911860 -911900 -912120 -912320 -912450 -912850 -913340 -913480 -913560 -913660 -913760 -915001 -915002 -915003 -915008 -915010 -915011 -915012 -915013 -915014 -915015 -915016 -915017 -915018 -915019 -915020 -915021 -915022 -915023 -915024 -915025 -915026 -915027 -915028 -919440 -931190 -945680 -947670 -948660 -949260 -949750 -999230 -999901 -999904 -999905 diff --git a/fix_atm/product/gfs_collective8.list b/fix_atm/product/gfs_collective8.list deleted file mode 100755 index 94270882f4..0000000000 --- a/fix_atm/product/gfs_collective8.list +++ /dev/null @@ -1,147 +0,0 @@ -000001 -000002 -000004 -000008 -000012 -000015 -000202 -000203 -000204 -000205 -000206 -000207 -000208 -000209 -000210 -000232 -000301 -000302 -000303 -000304 -000305 -000306 -000307 -000338 -000340 -000341 -000342 -000765 -000766 -000767 -000768 -000769 -000770 -000900 -000901 -000902 -000903 -000904 -000905 -000906 -000907 -000908 -000909 -000910 -000911 -000912 -000913 -000914 -000915 -000916 -000917 -000918 -000919 -000920 -000921 -000922 -000923 -000924 -000925 -000926 -000927 -000928 -000929 -000930 -000931 -000932 -000933 -000934 -000935 -000936 -000937 -000938 -021982 -025173 -025399 -025551 -025563 -025677 -046001 -046003 -046035 -070341 -255940 -700260 -700860 -701040 -701330 -701620 -701740 -701780 -701940 -702000 -702070 -702120 -702190 -702220 -702310 -702315 -702350 -702510 -702550 -702590 -702610 -702650 -702660 -702670 -702710 -702720 -702730 -702740 -702750 -702770 -702820 -702910 -702960 -703050 -703080 -703160 -703210 -703260 -703400 -703410 -703430 -703500 -703610 -703620 -703670 -703710 -703810 -703860 -703870 -703950 -703980 -704140 -704540 -704820 -704890 -712220 -719530 -719570 -719640 -719660 -719665 -999120 -999360 -999902 -999903 diff --git a/fix_atm/product/gfs_collective9.list b/fix_atm/product/gfs_collective9.list deleted file mode 100755 index 0bfbd9b418..0000000000 --- a/fix_atm/product/gfs_collective9.list +++ /dev/null @@ -1,134 +0,0 @@ -000201 -000255 -000256 -001001 -001384 -002460 -002465 -002974 -003005 -003135 -003357 -003644 -003649 -003772 -003957 -004018 -006181 -006200 -006451 -006610 -007149 -008001 -008160 -008397 -008594 -062400 -062900 -070930 -081810 -082220 -082840 -102240 -103840 -105130 -106370 -108660 -110100 -110360 -115180 -121500 -123750 -124240 -128430 -132750 -154210 -161050 -162390 -162420 -167460 -170620 -171280 -172800 -176060 -260630 -276120 -375490 -402700 -402900 -404370 -404380 -405820 -406080 -406500 -406890 -406900 -406910 -407540 -411700 -411940 -412170 -600300 -601550 -602300 -606800 -610520 -612230 -616410 -617010 -622710 -623060 -637390 -637910 -638180 -642100 -652010 -654620 -655480 -655780 -656600 -661600 -682880 -688160 -711970 -718010 -718030 -718090 -718150 -789540 -821910 -823320 -823980 -825620 -825790 -825990 -827530 -828610 -829750 -830630 -832290 -833620 -837210 -837220 -837430 -837800 -839670 -862180 -871550 -875760 -999060 -999070 -999090 -999110 -999130 -999150 -999160 -999170 -999190 -999220 -999270 -999280 -999310 -999330 -999440 -999530 diff --git a/fix_atm/product/gfs_minmon_cost.txt b/fix_atm/product/gfs_minmon_cost.txt deleted file mode 100644 index 7b4341587b..0000000000 --- a/fix_atm/product/gfs_minmon_cost.txt +++ /dev/null @@ -1,4 +0,0 @@ -cost_target:cost,grad,step,b,step?: -cost_number:4: -costterms_target:costterms Jb,Jo,Jc,Jl: - diff --git a/fix_atm/product/gfs_minmon_gnorm.txt b/fix_atm/product/gfs_minmon_gnorm.txt deleted file mode 100644 index 4687139cf3..0000000000 --- a/fix_atm/product/gfs_minmon_gnorm.txt +++ /dev/null @@ -1,6 +0,0 @@ -igrad_target:cost,grad,step,b,step?: -igrad_number:5: -gnorm_target:penalty and grad reduction WRT outer and initial iter: -gnorm_number:14: -expected_gnorms:202: -gross_check_val:3.5E-4: diff --git a/fix_atm/product/wafs_admin_msg b/fix_atm/product/wafs_admin_msg deleted file mode 100755 index 5df92dba3b..0000000000 --- a/fix_atm/product/wafs_admin_msg +++ /dev/null @@ -1,5 +0,0 @@ -WAFC WASHINGTON ADVISES ALL USERS OF TRIAL CB CLOUD, ICING AND TURBULENCE WAFS FORECASTS IN GRIB2 FORMAT THAT PRODUCTION PROBLEMS HAVE TRIGGERED CONTINGENCY MEASURES AND THE ISSUANCE OF NON-HARMONIZED FORECASTS. - -STANDARD WAFS FORECAST PARAMETERS IN GRIB2 FORMAT (WIND, TEMPERATURE, HUMIDITY, TROP HEIGHT, MAX WIND, MAX WIND HEIGHT) ARE UNAFFECTED, AND ARE AVAILABLE AS NORMAL. - -WAFC WASHINGTON APOLOGIZES FOR ANY INCONVENIENCE CAUSED DUE TO THIS ISSUE. diff --git a/modulefiles/OznMonBuild.orion b/modulefiles/OznMonBuild.orion new file mode 100644 index 0000000000..efac4df057 --- /dev/null +++ b/modulefiles/OznMonBuild.orion @@ -0,0 +1,17 @@ +#%Module################################################ +# Modfule file for oznmon +######################################################## +export ver=2.0.2 +export FCOMP=ifort + +export CF=$FCOMP +export FC=$FCOMP +export FFLAGS="-O3 -fp-model strict -convert big_endian -assume byterecl" + +export D_FFLAGS="-O3 -fp-model strict -convert big_endian -assume byterecl -debug" + +module load intel/2018.4 +#module load w3nco/2.0.6 +module use -a /work/noaa/noaatest/NCEPLIBS/lib/modulefiles +module load w3nco-intel-sandybridge/2.0.6 + diff --git a/modulefiles/RadMonBuild.orion b/modulefiles/RadMonBuild.orion new file mode 100644 index 0000000000..932bb6f95b --- /dev/null +++ b/modulefiles/RadMonBuild.orion @@ -0,0 +1,17 @@ +#%Module################################################ +# Modfule file for radmon +######################################################## +export ver=2.0.2 +export FCOMP=ifort + +export CF=$FCOMP +export FC=$FCOMP +export FFLAGS="-O3 -fp-model strict -D_REAL8_ -traceback -convert big_endian -assume byterecl" + +export CHECK_LIBS="/gpfs/hps/nco/ops/nwprod/spa_util/check_libs.bash" +export D_FFLAGS="-O3 -fp-model strict -D_REAL8_ -traceback -convert big_endian -assume byterecl -debug" + +module load intel/2018.4 +#module load w3nco/2.0.6 +module use -a /work/noaa/noaatest/NCEPLIBS/lib/modulefiles +module load w3nco-intel-sandybridge/2.0.6 diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.gaea b/modulefiles/fv3gfs/enkf_chgres_recenter.gaea deleted file mode 100644 index be2cb153dd..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.gaea +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - wcoss_cray -############################################################# - -module load PrgEnv-intel -module load intel -module load cray-mpich -module load craype-haswell - -module load cray-netcdf -module load cray-hdf5 - -module load nemsio-intel-sandybridge/2.2.3 -module load bacio-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load ip-intel-sandybridge/3.0.0 -module load sp-intel-sandybridge/2.0.2 - -export FC=ftn diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.hera b/modulefiles/fv3gfs/enkf_chgres_recenter.hera deleted file mode 100644 index ed37493828..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.hera +++ /dev/null @@ -1,12 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - hera -############################################################# - -module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles -module load nemsio/2.2.3 -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load ip/3.0.1 -module load sp/2.0.2 - -export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.theia b/modulefiles/fv3gfs/enkf_chgres_recenter.theia deleted file mode 100644 index 369c013f33..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - theia -############################################################# - -module load intel/16.1.150 - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load nemsio/v2.2.3 -module load bacio/v2.0.2 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 - -export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss deleted file mode 100644 index c341291800..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - wcoss -############################################################# - -module unload ics -module load ics/16.0.3 -module load nemsio/v2.2.3 -module load bacio/v2.0.2 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 - -export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray deleted file mode 100644 index 18ad66ada8..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - wcoss_cray -############################################################# - -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -module load nemsio-intel/2.2.3 -module load bacio-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 - -export FC=ftn diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray_userlib b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray_userlib deleted file mode 100644 index 9a7bd7cd60..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_cray_userlib +++ /dev/null @@ -1,21 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - wcoss_cray -############################################################# - -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load nemsio-intel/2.2.3 -module load bacio-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 - -export FC=ftn diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 deleted file mode 100644 index 668853dca5..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - wcoss_dell_p3 -############################################################# - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 -module load nemsio/2.2.3 -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load ip/3.0.1 -module load sp/2.0.2 - -export FC=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.gaea b/modulefiles/fv3gfs/gaussian_sfcanl.gaea deleted file mode 100644 index bb50f91b62..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.gaea +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl component of fv3gfs - cray -############################################################# - -set ver v15.0.0 - -# Load Intel environment -module load PrgEnv-intel -module rm intel -module load intel -module load cray-hdf5 -module load cray-netcdf -module load craype-haswell - -module load nemsio-intel-sandybridge/2.2.3 -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.2 -module load sp-intel-sandybridge/2.0.2 - -export FCOMP=ftn diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.hera b/modulefiles/fv3gfs/gaussian_sfcanl.hera deleted file mode 100644 index 01150b4e75..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.hera +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl build module for Hera -############################################################# - -module load netcdf/4.7.0 -module load hdf5/1.10.5 - -module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load nemsio/2.2.3 -module load sp/2.0.2 - -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -#export FCOMP=$FCOMP diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.jet b/modulefiles/fv3gfs/gaussian_sfcanl.jet deleted file mode 100644 index 7a97d8ce36..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.jet +++ /dev/null @@ -1,26 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl build module for Jet -############################################################# - -# Loading Intel Compiler Suite -# -module load newdefaults -module load intel/15.0.3.187 - - -# Loding nceplibs modules -# -module use $NCEPLIBS/modulefiles -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.3 -module load sp-intel-sandybridge/2.0.2 -module load szip -module load hdf5 -module load netcdf4 - -export NETCDF=$NETCDF4 -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -export FCOMP=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.theia b/modulefiles/fv3gfs/gaussian_sfcanl.theia deleted file mode 100644 index d70de3df8f..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.theia +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl build module for Theia -############################################################# - -# Loading Intel Compiler Suite -module load intel/15.1.133 - -# Loding nceplibs modules -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load sp/v2.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -export FCOMP=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss deleted file mode 100644 index 8e89eff6f4..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl build module - wcoss -############################################################# - -# Loading Intel Compiler Suite -module load ics/16.0.3 - -# Loading nceplibs modules -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load sp/v2.0.2 -module load NetCDF/4.2/serial - -export FCOMP=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_cray b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_cray deleted file mode 100644 index e20c863d8e..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_cray +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl component of fv3gfs - cray -############################################################# - -set ver v15.0.0 - -# Load Intel environment -module load PrgEnv-intel/5.2.56 -module rm intel -module rm NetCDF-intel-sandybridge/4.2 -module load intel/16.3.210 -module load cray-netcdf -module load craype-haswell - -module load nemsio-intel/2.2.3 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.2 -module load sp-intel/2.0.2 - -export FCOMP=ftn diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 deleted file mode 100644 index e16660ae5e..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 +++ /dev/null @@ -1,18 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl component of fv3gfs - wcoss_dell_p3 -############################################################# - -set ver v15.0.0 - -# Load Intel environment -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 -module load HDF5-serial/1.10.1 -module load nemsio/2.2.3 -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load sp/2.0.2 - -export FCOMP=ifort diff --git a/modulefiles/fv3gfs/global_chgres.gaea b/modulefiles/fv3gfs/global_chgres.gaea deleted file mode 100644 index 737747cb87..0000000000 --- a/modulefiles/fv3gfs/global_chgres.gaea +++ /dev/null @@ -1,24 +0,0 @@ -#%Module##################################################### -## global_chgres component - wcoss -############################################################# -module load craype-haswell -module load cray-netcdf - -# Load NCEPLIBS modules -export NCEPLIBS=/lustre/f1/pdata/ncep_shared/NCEPLIBS/lib -module load sigio-intel-sandybridge/2.0.1 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load sp-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.2 -module load nemsiogfs-intel/2.0.1 -module load ip-intel-sandybridge/3.0.0 -module load sfcio-intel-sandybridge/1.0.0 -module load gfsio-intel-sandybridge/1.1.0 -module load landsfcutil-intel/2.1.0 -module load bacio-intel-sandybridge/2.0.1 - -export FCMP=ftn -export CCMP=cc -export NETCDF_INCLUDE="" -export NETCDF_LDFLAGS_F="" diff --git a/modulefiles/fv3gfs/global_chgres.jet b/modulefiles/fv3gfs/global_chgres.jet deleted file mode 100644 index 9fb3d4b29f..0000000000 --- a/modulefiles/fv3gfs/global_chgres.jet +++ /dev/null @@ -1,41 +0,0 @@ -#%Module##################################################### -## global_chgres component - theia -############################################################# - -# Loading Intel Compiler Suite - -## this one is missing from nwprod/lib (compiled locally) -#module use lib/modulefiles -#module load nemsiogfs/v2.0.1 - -# Loding nceplibs modules -module load intel/14.0.3 -module load mvapich2/1.8 - -#export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib -module use $NCEPLIBS/modulefiles -module load sigio-intel-sandybridge/2.0.1 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load sp-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.2 -module load nemsiogfs-intel/2.0.1 -module load ip-intel-sandybridge/3.0.0 -module load sfcio-intel-sandybridge/1.0.0 -module load gfsio-intel-sandybridge/1.1.0 -module load landsfcutil-intel/2.1.0 -module load bacio-intel-sandybridge/2.0.1 - -export FCMP=mpif90 -export CCMP=mpicc - -module load szip -module load hdf5 -module load netcdf4 - -export NETCDF=$NETCDF4 -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -set FCMP ifort -set CCMP icc diff --git a/modulefiles/fv3gfs/global_cycle.gaea b/modulefiles/fv3gfs/global_cycle.gaea deleted file mode 100644 index abed890272..0000000000 --- a/modulefiles/fv3gfs/global_cycle.gaea +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## global_cycle component - wcoss_cray -############################################################# -# Load ncep environment -#module load ncep/1.0 - -# Load Intel environment -module load PrgEnv-intel -module rm intel -module load intel -module load cray-mpich -module load craype-haswell -module load cray-hdf5 -module load cray-netcdf - -# Load NCEPLIBS modules -module load w3nco-intel-sandybridge/2.0.6 -module load sp-intel-sandybridge/2.0.2 -module load ip-intel-sandybridge/3.0.0 -module load bacio-intel-sandybridge/2.0.1 - -export FCMP=ftn diff --git a/modulefiles/fv3gfs/global_cycle.jet b/modulefiles/fv3gfs/global_cycle.jet deleted file mode 100644 index 3fef452463..0000000000 --- a/modulefiles/fv3gfs/global_cycle.jet +++ /dev/null @@ -1,23 +0,0 @@ -#%Module##################################################### -## global_cycle component - Jet -############################################################# - -# Loading Intel Compiler Suite -# Loding nceplibs modules - -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 - -#export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib -module use ${NCEPLIBS}/modulefiles -module load w3nco-intel-sandybridge/2.0.6 -module load sp-intel-sandybridge/2.0.2 -module load bacio-intel-sandybridge/2.0.1 -module load ip-intel-sandybridge/3.0.0 -module load szip -module load hdf5 -module load netcdf4 -export NETCDF_INCLUDE=$NETCDF4_INCLUDE_OPTS -export NETCDF_LDFLAGS_F="$NETCDF4_LINK_OPTS -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" -export FCMP=mpiifort diff --git a/modulefiles/fv3gfs/post/v7.0.0-gaea b/modulefiles/fv3gfs/post/v7.0.0-gaea deleted file mode 100644 index 7b65176367..0000000000 --- a/modulefiles/fv3gfs/post/v7.0.0-gaea +++ /dev/null @@ -1,53 +0,0 @@ -#%Module###################################################################### -############################################################# -## Lin.Gan@noaa.gov -## EMC -## post v7.0.0 - Branch based on current trunk as of 20151106 -## Luna Cray with Intel -############################################################# -proc ModulesHelp { } { -puts stderr "Set environment veriables for post" -puts stderr "This module initializes the users environment" -puts stderr "to build the post for production.\n" -} -module-whatis "post" - -set ver v7.0.0 - -set NCEPLIBS $::env(NCEPLIBS) - -module use $NCEPLIBS/modulefiles -module load ip-intel-sandybridge/2.0.0 -module load bacio-intel-sandybridge/2.0.1 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load g2-intel-sandybridge/2.5.0 -module load g2tmpl-intel-sandybridge/1.4.0 -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 -module load nemsio-intel-sandybridge/2.2.2 -module load bufr-intel-sandybridge/11.0.1 -module load sfcio-intel-sandybridge/1.0.0 -module load sp-intel-sandybridge/2.0.2 -module load landsfcutil-intel-sandybridge/2.0.0 -module load sigio-intel-sandybridge/2.0.1 -module load gfsio-intel-sandybridge/1.1.0 -module load crtm-intel-sandybridge/2.0.6 -module unload nemsio-intel-sandybridge -module load nemsio-intel-sandybridge/2.2.3 -module unload g2-intel-sandybridge/3.1.0 -module load g2-intel-sandybridge/2.5.0 - - -setenv WRFPATH $NCEPLIBS/EXTERNAL/wrf_shared.v1.1.0 -setenv myFC ftn -setenv myFCFLAGS "-O3 -convert big_endian -traceback -g -fp-model source -openmp" -setenv myCPP /lib/cpp -setenv myCPPFLAGS "-P" - -module load cray-netcdf - - - - diff --git a/modulefiles/fv3gfs/post/v7.0.0-jet b/modulefiles/fv3gfs/post/v7.0.0-jet deleted file mode 100644 index 6222e9f0f9..0000000000 --- a/modulefiles/fv3gfs/post/v7.0.0-jet +++ /dev/null @@ -1,61 +0,0 @@ -#%Module###################################################################### -############################################################## -### Lin.Gan@noaa.gov -### EMC -### post v7.0.0 - Branch based on current trunk as of 20151106 -### Luna Cray with Intel -############################################################## -# -proc ModulesHelp { } { -puts stderr "Set environment veriables for post" -puts stderr "This module initializes the users environment" -puts stderr "to build the post for production.\n" -} -module-whatis "post" - -set ver v7.0.0 -#module load intel/14.0.3 -#module load mvapich2/1.8 - -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 - -set NCEPLIBS $::env(NCEPLIBS) - -module use $NCEPLIBS/modulefiles -module load ip-intel-sandybridge/2.0.0 -module load bacio-intel-sandybridge/2.0.1 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load g2-intel-sandybridge/2.5.0 -module load g2tmpl-intel-sandybridge/1.5.0 -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 -module load nemsio-intel-sandybridge/2.2.2 -module load bufr-intel-sandybridge/11.0.1 -module load sfcio-intel-sandybridge/1.0.0 -module load sp-intel-sandybridge/2.0.2 -module load landsfcutil-intel-sandybridge/2.0.0 -module load sigio-intel-sandybridge/2.0.1 -module load gfsio-intel-sandybridge/1.1.0 -module load crtm-intel-sandybridge/2.0.6 -module unload nemsio-intel-sandybridge -module load nemsio-intel-sandybridge/2.2.3 -module unload g2-intel-sandybridge/3.1.0 -module load g2-intel-sandybridge/2.5.0 - - -setenv WRFPATH $NCEPLIBS/EXTERNAL/wrf_shared.v1.1.0 -setenv myFC mpif90 -setenv myFC mpiifort -setenv myFCFLAGS "-O3 -convert big_endian -traceback -g -fp-model source -openmp" -setenv myCPP /lib/cpp -setenv myCPPFLAGS "-P" - -module load netcdf/3.6.3 - - - - diff --git a/modulefiles/fv3gfs/post/v8.0.0-jet b/modulefiles/fv3gfs/post/v8.0.0-jet deleted file mode 100644 index 3d5c344b4a..0000000000 --- a/modulefiles/fv3gfs/post/v8.0.0-jet +++ /dev/null @@ -1,71 +0,0 @@ -#%Module###################################################################### -############################################################# -## Lin.Gan@noaa.gov -## EMC -## post v7.0.0 - Branch based on current trunk as of 20151106 -## Luna Cray with Intel -## Wen Meng 07/2018: set post to v8.0.0 for fv3gfs -############################################################# -proc ModulesHelp { } { -puts stderr "Set environment veriables for post" -puts stderr "This module initializes the users environment" -puts stderr "to build the post for production.\n" -} -module-whatis "post" - -set ver v8.0.0 - -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 - -set NCEPLIBS $::env(NCEPLIBS) -module use $NCEPLIBS/modulefiles - -# (NU) module load prod_util/1.0.3 -module use /lfs3/projects/hwrf-vd/soft/modulefiles/ -module load prod_util/1.0.18 - -# module load crtm-intel/2.2.6 -# (NU) module load sigio-intel/2.1.0 -module load crtm-intel-sandybridge/2.2.6 -module load sigio-intel-sandybridge/2.0.1 - -#module load jasper-gnu-sandybridge/1.900.1 -# (NU) module load png-gnu-sandybridge/1.2.49 -#module load zlib-gnu-sandybridge/1.2.7 -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 - -#module load sfcio-intel/1.0.0 -#module load nemsio-intel/2.2.2 -#module load bacio-intel/2.0.1 -module load sfcio-intel-sandybridge/1.0.0 -module load nemsio-intel-sandybridge/2.2.2 -module load bacio-intel-sandybridge/2.0.1 - -#module load g2-intel/3.1.0 -#module load g2tmpl-intel/1.5.0 -#module load gfsio-intel/1.1.0 -module load g2-intel-sandybridge/3.1.0 -module load g2tmpl-intel-sandybridge/1.5.0 -module load gfsio-intel-sandybridge/1.1.0 - -#module load ip-intel/3.0.0 -#module load sp-intel/2.0.2 -#module load w3emc-intel/2.2.0 -#module load w3nco-intel/2.0.6 -module load ip-intel-sandybridge/3.0.0 -module load sp-intel-sandybridge/2.0.2 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 - -module load netcdf/3.6.3 - -setenv WRFPATH $NCEPLIBS/EXTERNAL/wrf_shared.v1.1.0 -setenv myFC mpif90 -setenv myFC mpiifort -setenv myFCFLAGS "-O3 -convert big_endian -traceback -g -fp-model source -openmp" -setenv myCPP /lib/cpp -setenv myCPPFLAGS "-P" diff --git a/modulefiles/fv3gfs/tropcy_NEMS.gaea b/modulefiles/fv3gfs/tropcy_NEMS.gaea deleted file mode 100644 index 8a006f1128..0000000000 --- a/modulefiles/fv3gfs/tropcy_NEMS.gaea +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## Module file for tropcy_NEMS -############################################################# - -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load sigio-intel-sandybridge/2.0.1 -module load sp-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.2 -module load nemsiogfs-intel/2.0.1 -#module load nemsiogfs-intel-sandybridge/2.0.1 -module load g2-intel-sandybridge/2.5.0 - -export FC=ftn -export FFLAGS="-openmp -O3 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" diff --git a/modulefiles/gdas_gridbull.gaea b/modulefiles/gdas_gridbull.gaea deleted file mode 100644 index b26c97b512..0000000000 --- a/modulefiles/gdas_gridbull.gaea +++ /dev/null @@ -1,13 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module unload PrgEnv-cray -module load PrgEnv-intel -module load intel -module load craype-sandybridge -module load iobuf - -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.1 diff --git a/modulefiles/gdas_gridbull.jet b/modulefiles/gdas_gridbull.jet deleted file mode 100644 index 3f301ab308..0000000000 --- a/modulefiles/gdas_gridbull.jet +++ /dev/null @@ -1,10 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module load newdefaults -module load intel/15.0.3.187 -module use $NCEPLIBS/modulefiles -module load bacio-intel-sandybridge/2.0.2 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.2 diff --git a/modulefiles/gdas_gridbull.theia b/modulefiles/gdas_gridbull.theia deleted file mode 100644 index e7cd769a1f..0000000000 --- a/modulefiles/gdas_gridbull.theia +++ /dev/null @@ -1,7 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module load intel/14.0.2 -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load w3nco/v2.0.6 diff --git a/modulefiles/gdas_navybull.jet b/modulefiles/gdas_navybull.jet deleted file mode 100644 index 187b4041b8..0000000000 --- a/modulefiles/gdas_navybull.jet +++ /dev/null @@ -1,13 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -# Loading Intel Compiler Suite -module load newdefaults -module load intel/15.0.3.187 - -# Loding nceplibs modules -module use $NCEPLIBS/modulefiles -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.2 diff --git a/modulefiles/gdas_navybull.theia b/modulefiles/gdas_navybull.theia deleted file mode 100644 index a6c29a4014..0000000000 --- a/modulefiles/gdas_navybull.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use -a $MOD_PATH -module load w3emc/v2.0.3 -module load w3nco/v2.0.6 -module load bufr/v10.2.5 diff --git a/modulefiles/gdas_trpsfcmv.gaea b/modulefiles/gdas_trpsfcmv.gaea deleted file mode 100644 index a5b3790e05..0000000000 --- a/modulefiles/gdas_trpsfcmv.gaea +++ /dev/null @@ -1,22 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -#module load ncep/1.0 -module load gcc -module load PrgEnv-intel -module load cray-mpich -module load craype-haswell - -module use /ncrc/sw/gaea-c4/modulefiles -module load ncl - -module load bufr-intel-sandybridge/11.0.1 -module load sigio-intel-sandybridge/2.0.1 -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 - -#module use /usrx/local/nceplibs/modulefiles -#module load bacio-intel-sandybridge/2.0.2 -module load bacio-intel-sandybridge/2.0.2 diff --git a/modulefiles/gdas_trpsfcmv.jet b/modulefiles/gdas_trpsfcmv.jet deleted file mode 100644 index 8517544555..0000000000 --- a/modulefiles/gdas_trpsfcmv.jet +++ /dev/null @@ -1,16 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 -module load ncl -export NCARG_LIB=$NCARG/lib - -module use $NCEPLIBS/modulefiles -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.2 diff --git a/modulefiles/gdas_trpsfcmv.theia b/modulefiles/gdas_trpsfcmv.theia deleted file mode 100644 index ae1a167315..0000000000 --- a/modulefiles/gdas_trpsfcmv.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load intel/14.0.2 -module load impi/5.1.2.150 -module load ncl/6.3.0 -module use -a $MOD_PATH -module load bufr/v10.2.5 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load bacio/v2.0.1 diff --git a/modulefiles/gfs_bufr.gaea b/modulefiles/gfs_bufr.gaea deleted file mode 100644 index ad08441a1e..0000000000 --- a/modulefiles/gfs_bufr.gaea +++ /dev/null @@ -1,39 +0,0 @@ -#%Module##################################################### -## bufrsnd -############################################################# -export F_COMP=ftn -export F_COMP_MP=ftn -export F_COMP_MPI=ftn - -export C_COMP=cc -export C_COMP_MP=cc - -module load modules - -# Loading ncep environment -#module load ncep/1.0 - -# Loading Intel Compiler Suite -module load PrgEnv-intel - -# Loading pe environment -#module load cray-mpich/7.2.0 -#module load craype-haswell -#module load craype-sandybridge -#module load intel intel/15.0.3.187 - -# Loding nceplibs modules -#module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module load nemsio-intel-sandybridge/2.2.2 -module load sigio-intel-sandybridge/2.0.1 -module load bacio-intel-sandybridge/2.0.1 -module load sp-intel-sandybridge/2.0.2 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.1 -module load iobuf/2.0.7 - -export myFC=ftn -export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -openmp" -export myCPP=/lib/cpp -export myCPPFLAGS="-P" diff --git a/modulefiles/gfs_bufr.orion b/modulefiles/gfs_bufr.orion new file mode 100644 index 0000000000..3ab86daf21 --- /dev/null +++ b/modulefiles/gfs_bufr.orion @@ -0,0 +1,26 @@ +#%Module##################################################### +## bufrsnd +############################################################# + +module load intel/2018.4 +module load impi/2018.4 + +module load gempak/7.5.1 + +module use /work/noaa/noaatest/NCEPLIBS/lib/modulefiles +module load netcdf/4.7.2-parallel +module load hdf5/1.10.5-parallel + +module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load bacio-intel-sandybridge/2.0.2 +module load w3nco-intel-sandybridge/2.0.6 +module load sigio-intel-sandybridge/2.1.0 +module load bufr-intel-sandybridge/11.2.0 +module load nemsio-intel-sandybridge/2.2.3 +module load w3emc-intel-sandybridge/2.4.0p +#module load netcdfp/4.7.4 + +export myFC=$FCOMP +export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -qopenmp" +export myCPP=/lib/cpp +export myCPPFLAGS="-P" diff --git a/modulefiles/gfs_cnvgrib21_gfs.gaea b/modulefiles/gfs_cnvgrib21_gfs.gaea deleted file mode 100644 index f05bbbeedb..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.gaea +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# -#module-whatis "cnvgrib21_gfs" - -# -# Loading required system modules -# - module load ics/14.0.1 - module load jasper-intel-sandybridge/1.900.1 - module load png-intel-sandybridge/1.2.44 - module load zlib-intel-sandybridge/1.2.7 - -# Loading Intel-Compiled NCEP Libraries - -# Loding nceplibs modules - module load w3nco-intel-sandybridge/2.0.6 - module load w3emc-intel-sandybridge/2.2.0 - module load bacio-intel-sandybridge/2.0.1 - module load ip-intel-sandybridge/2.0.0 - module load sp-intel-sandybridge/2.0.2 - module load g2-intel-sandybridge/2.5.0 diff --git a/modulefiles/gfs_cnvgrib21_gfs.theia b/modulefiles/gfs_cnvgrib21_gfs.theia deleted file mode 100644 index f2190a2bcc..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.theia +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# - -# Loading Intel Compiler Suite -module load intel - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles - -# Loding nceplibs modules -module load bacio/v2.0.1 -module load w3nco/v2.0.6 -module load g2/v2.5.0 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.jet b/modulefiles/gfs_fbwndgfs.orion similarity index 56% rename from modulefiles/fv3gfs/enkf_chgres_recenter.jet rename to modulefiles/gfs_fbwndgfs.orion index 85b642b5eb..98ddf7835e 100644 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.jet +++ b/modulefiles/gfs_fbwndgfs.orion @@ -1,15 +1,10 @@ #%Module##################################################### -## enkf_chgres_recenter component - theia +## Module file for fbwndgfs ############################################################# -module load newdefaults intel/15.0.3.187 impi/5.1.3.181 - -module load szip hdf5 netcdf4 -module use $NCEPLIBS/modulefiles -module load nemsio-intel-sandybridge/2.2.3 +module use -a /work/noaa/noaatest/NCEPLIBS/lib/modulefiles module load bacio-intel-sandybridge/2.0.2 +module load w3emc-intel-sandybridge/2.3.0 module load w3nco-intel-sandybridge/2.0.6 module load ip-intel-sandybridge/3.0.0 module load sp-intel-sandybridge/2.0.2 - -export FC=ifort diff --git a/modulefiles/gfs_fbwndgfs.theia b/modulefiles/gfs_fbwndgfs.theia deleted file mode 100644 index 9a896baf6a..0000000000 --- a/modulefiles/gfs_fbwndgfs.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for fbwndgfs -############################################################# - -# Loading Intel Compiler Suite -module load intel/14.0.2 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 diff --git a/modulefiles/gfs_overpdtg2.gaea b/modulefiles/gfs_overpdtg2.gaea deleted file mode 100644 index b4ed4884af..0000000000 --- a/modulefiles/gfs_overpdtg2.gaea +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## overpdtg2 -############################################################# - -module load modules - -# Loading Intel Compiler Suite -module load PrgEnv-intel - -# Loding nceplibs modules -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load g2-intel-sandybridge/2.5.0 -module load jasper-intel-sandybridge/1.900.1 -module load zlib-intel-sandybridge/1.2.7 -module load png-intel-sandybridge/1.2.44 diff --git a/modulefiles/gfs_overpdtg2.theia b/modulefiles/gfs_overpdtg2.theia deleted file mode 100644 index 3bddf7c572..0000000000 --- a/modulefiles/gfs_overpdtg2.theia +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## Module file for overpdtg2 -############################################################# - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use $MOD_PATH -module load bacio/v2.0.1 -module load w3nco/v2.0.6 -module load g2/v2.5.0 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 diff --git a/modulefiles/gfs_wintemv.gaea b/modulefiles/gfs_wintemv.gaea deleted file mode 100644 index 3b67380e75..0000000000 --- a/modulefiles/gfs_wintemv.gaea +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -## wintemv -############################################################# - -module load modules - -# Loading Intel Compiler Suite -module load PrgEnv-intel - -# Loding nceplibs modules -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 diff --git a/modulefiles/gfs_wintemv.theia b/modulefiles/gfs_wintemv.theia deleted file mode 100644 index 8205dd4a67..0000000000 --- a/modulefiles/gfs_wintemv.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module##################################################### -## Module file for wintemv -############################################################# - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use -a $MOD_PATH -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 diff --git a/modulefiles/gsi/modulefile.ProdGSI.jet b/modulefiles/gsi/modulefile.ProdGSI.jet deleted file mode 100644 index 57dd2b3487..0000000000 --- a/modulefiles/gsi/modulefile.ProdGSI.jet +++ /dev/null @@ -1,64 +0,0 @@ -#%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 -##_____________________________________________________ -#proc ModulesHelp { } { -#puts stderr "Set environment veriables for GSI build with CMake" -#puts stderr "This module initializes the environment " -#puts stderr "for the Intel Compiler Suite $version\n" -#} -#module-whatis " GDAS_ENKF whatis description" -# -# -#module load intel/14.0.3 -module load newdefaults -#module load intel/15.0.3.187 -module load intel/2016.2.181 -module load impi/5.1.1.109 -# -module load szip/2.1 -module load hdf5/1.8.9 -module load netcdf4/4.2.1.1 - -export COREPATH=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib -export NCEPLIBS=$COREPATH -module use $NCEPLIBS/modulefiles - -export FFLAGS="-openmp" -export LDFLAGS="-openmp" -module load bacio-intel-sandybridge/2.0.2 -module load crtm-intel-sandybridge/2.2.5 -module load bufr-intel-sandybridge/11.1.0 -module load nemsio-intel-sandybridge/2.2.2 -module load sp-intel-sandybridge/2.0.2 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load sigio-intel-sandybridge/2.0.1 -module load sfcio-intel-sandybridge/1.0.0 - -# Used to get ndate as $NDATE -module use /lfs3/projects/hwrf-vd/soft/modulefiles -module load prod_util/1.0.18 - -#export BACIO_LIB4=${CAREPATH}/bacio/v2.0.2/libbacio_v2.0.2_4.a -#export BUFR_LIBd=$CAREPATH/bufr/v11.1.0/libbufr_v11.1.0_d_64.a -#export CRTM_LIB=$CAREPATH/crtm/v2.2.4/libcrtm_v2.2.4.a -#export CRTM_INC=$CAREPATH/crtm/v2.2.4/include -#export NEMSIO_LIB=$CAREPATH/nemsio/v2.2.2/libnemsio_v2.2.2.a -#export NEMSIO_INC=$CAREPATH/nemsio/v2.2.2/include/nemsio_v2.2.2 -#export SP_LIBd=$CAREPATH/sp/v2.0.2/libsp_v2.0.2_d.a -#export SP_LIB4=$CAREPATH/sp/v2.0.2/libsp_v2.0.2_4.a -#export W3EMC_LIBd=$CAREPATH/w3emc/v2.2.0/libw3emc_v2.2.0_d.a -#export W3EMC_LIB4=$CAREPATH/w3emc/v2.2.0/libw3emc_v2.2.0_4.a -#export W3EMC_INC4=$CAREPATH/w3emc/v2.2.0/include/w3emc_v2.2.0_4 -#export W3EMC_INCd=$CAREPATH/w3emc/v2.2.0/include/w3emc_v2.2.0_d -#export W3NCO_LIBd=$CAREPATH/w3nco/v2.0.6/libw3nco_v2.0.6_d.a -#export W3NCO_LIB4=$CAREPATH/w3nco/v2.0.6/libw3nco_v2.0.6_4.a -#export SFCIO_LIB4=$CAREPATH/sfcio/v1.0.0/libsfcio_v1.0.0_4.a -#export SFCIO_INC4=$CAREPATH/sfcio/v1.0.0/include/sfcio_v1.0.0_4 -#export SIGIO_LIB4=$CAREPATH/sigio/v2.0.1/libsigio_v2.0.1_4.a -#export SIGIO_INC4=$CAREPATH/sigio/v2.0.1/include/sigio_v2.0.1_4 - -export NETCDF=${NETCDF4} -export NETCDF_DIR=${NETCDF4} diff --git a/modulefiles/gsi/setCompilerFlags.cmake b/modulefiles/gsi/setCompilerFlags.cmake deleted file mode 100644 index 86a2758962..0000000000 --- a/modulefiles/gsi/setCompilerFlags.cmake +++ /dev/null @@ -1,175 +0,0 @@ -function (setIntel) - message("In function setIntel") - string(REPLACE "." ";" COMPILER_VERSION_LIST ${CMAKE_C_COMPILER_VERSION}) - list(GET COMPILER_VERSION_LIST 0 MAJOR_VERSION) - list(GET COMPILER_VERSION_LIST 1 MINOR_VERSION) - list(GET COMPILER_VERSION_LIST 2 PATCH_VERSION) - set(COMPILER_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}" CACHE INTERNAL "Compiler Version") - message("Compiler version is ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}") - message("Compiler version is ${COMPILER_VERSION}") - if(${MAJOR_VERSION} GREATER 15 ) - set( OMPFLAG "-qopenmp" CACHE INTERNAL "OpenMP flag") - else() - set( OMPFLAG "-openmp" CACHE INTERNAL "OpenMP flag") - endif() - STRING(COMPARE EQUAL ${CMAKE_BUILD_TYPE} "RELEASE" BUILD_RELEASE) - STRING(COMPARE EQUAL ${CMAKE_BUILD_TYPE} "PRODUCTION" BUILD_PRODUCTION) - set( MKL_FLAG "-mkl" ) - if( (BUILD_RELEASE) OR (BUILD_PRODUCTION) ) - if( HOST-Jet ) - message("Compiling on Jet with full instruction set to operate on all partitions (-axSSE4.2,AVX,CORE-AVX2)") - set( VTUNE_EXTRA_DEBUG "-g -shared-intel -shared-libgcc -debug inline-debug-info -DTBB_USE_THREADING_TOOLS -parallel-source-info=2" ) - set( MKL_FLAG "" ) - set(GSI_Fortran_FLAGS "${VTUNE_EXTRA_DEBUG} -axSSE4.2,AVX,CORE-AVX2 -DPOUND_FOR_STRINGIFY -fp-model source -assume byterecl -convert big_endian -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(GSI_LDFLAGS "-liomp5" PARENT_SCOPE) - - set(ENKF_Fortran_FLAGS "${VTUNE_EXTRA_DEBUG} -O3 -axSSE4.2,AVX,CORE-AVX2 -fp-model source -convert big_endian -assume byterecl -implicitnone -DGFS -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "${VTUNE_EXTRA_DEBUG} -O3 -axSSE4.2,AVX,CORE-AVX2 -fp-model source -convert big_endian -assume byterecl -implicitnone -DWRF -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "${VTUNE_EXTRA_DEBUG} -O3 -axSSE4.2,AVX,CORE-AVX2 -free -assume nocc_omp " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS "${VTUNE_EXTRA_DEBUG} -c -g -traceback -O3 -axSSE4.2,AVX,CORE-AVX2 -r8 " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-DSTATIC_ALLOCATION -DUNDERSCORE -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - elseif(( HOST-Tide ) OR ( HOST-Gyre )) - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -traceback -O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(ENKF_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -DGFS -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -DWRF -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-O3 -free -assume nocc_omp " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS "-O2 -r8 -fp-model strict -traceback -xSSE2 -O3 -axCORE-AVX2 ${OMPFLAG} " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-g -traceback -DUNDERSCORE -O3 -axCORE-AVX2 -DDYNAMIC_ALLOCATION -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - elseif( HOST-Luna OR HOST-Surge ) - set( MKL_FLAG "" ) - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -fp-model strict -assume byterecl -convert big_endian -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS} -O3" PARENT_SCOPE) - set(GSI_LDFLAGS "${OMPFLAG}" PARENT_SCOPE) - - set(ENKF_Fortran_FLAGS "-O3 -fp-model strict -convert big_endian -assume byterecl -implicitnone -DGFS -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -DWRF -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-O3 -free -assume nocc_omp " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS " -c -g -traceback -O3 -axCORE-AVX2 -r8 " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-DSTATIC_ALLOCATION -DUNDERSCORE -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - elseif ( HOST-Venus OR HOST-Mars ) - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -fp-model strict -assume byterecl -convert big_endian -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS} -O3" PARENT_SCOPE) - set(GSI_LDFLAGS "${OMPFLAG} ${MKL_FLAG}" PARENT_SCOPE) - - set(ENKF_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -DGFS -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -DWRF -D_REAL8_ ${OMPFLAG} " PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-O3 -free -assume nocc_omp " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS " -c -g -traceback -O3 -axCORE-AVX2 -r8 " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-DSTATIC_ALLOCATION -DUNDERSCORE -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - set(NDATE_Fortran_FLAGS "-fp-model source -ftz -assume byterecl -convert big_endian -heap-arrays -DCOMMCODE -DLINUX -DUPPLITTLEENDIAN -O3 -Wl,-noinhibit-exec " PARENT_SCOPE ) - else() - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O3 -fp-model source -assume byterecl -convert big_endian -g -traceback -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(ENKF_Fortran_FLAGS "-O3 -xHOST -warn all -implicitnone -traceback -fp-model strict -convert big_endian -DGFS -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-O3 -xHOST -warn all -implicitnone -traceback -fp-model strict -convert big_endian -DWRF -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-O3 -free -assume nocc_omp " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS "-O2 -r8 -fp-model strict -traceback -xSSE2 -O3 -axCORE-AVX2 ${OMPFLAG} " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-g -traceback -DUNDERSCORE -O3 -axCORE-AVX2 -DDYNAMIC_ALLOCATION -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - endif() - - #Common release/production flags - set(WRFLIB_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O3 -fp-model source -assume byterecl -convert big_endian -g -traceback -D_REAL8_ ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(WRFLIB_C_FLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -O3 -Dfunder" PARENT_SCOPE ) - set(GSI_CFLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -O3 -Dfunder" PARENT_SCOPE ) - set (BUFR_Fortran_PP_FLAGS " -P -traditional-cpp -C " PARENT_SCOPE ) - set (CRTM_Fortran_FLAGS " -O3 -convert big_endian -free -assume byterecl -fp-model source -traceback " PARENT_SCOPE ) - set (NEMSIO_Fortran_FLAGS " -O2 -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (SFCIO_Fortran_FLAGS " -O2 -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (SIGIO_Fortran_FLAGS " -O2 -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (SP_Fortran_FLAGS " -O2 -ip -fp-model strict -assume byterecl -convert big_endian -fpp -i${intsize} -r8 -convert big_endian -assume byterecl -DLINUX ${OMPFLAG} " PARENT_SCOPE ) - set (SP_F77_FLAGS " -DLINUX -O2 -ip -fp-model strict -assume byterecl -convert big_endian -fpp -i${intsize} -r8 -convert big_endian -assume byterecl -DLINUX ${OMPFLAG} " PARENT_SCOPE ) - set (W3EMC_Fortran_FLAGS " -O3 -auto -assume nocc_omp -i${intsize} -r8 -convert big_endian -assume byterecl -fp-model strict ${OMPFLAG} " PARENT_SCOPE ) - set (W3NCO_Fortran_FLAGS " -O3 -auto -assume nocc_omp -i${intsize} -r8 -convert big_endian -assume byterecl -fp-model strict ${OMPFLAG} " PARENT_SCOPE ) - set (W3NCO_C_FLAGS "-O0 -DUNDERSCORE -DLINUX -D__linux__ " PARENT_SCOPE ) - set (NDATE_Fortran_FLAGS "-fp-model source -ftz -assume byterecl -convert big_endian -heap-arrays -DCOMMCODE -DLINUX -DUPPLITTLEENDIAN -O3 -Wl,-noinhibit-exec" PARENT_SCOPE ) - set( NCDIAG_Fortran_FLAGS "-free -assume byterecl -convert big_endian" PARENT_SCOPE ) - else( ) #DEBUG flags - message("Building DEBUG version of GSI") - set( debug_suffix "_DBG" PARENT_SCOPE ) - if(( HOST-Tide ) OR ( HOST-Gyre )) - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -mcmodel medium -shared-intel -g -traceback -debug -ftrapuv -check all,noarg_temp_created -fp-stack-check -fstack-protector -warn all,nointerfaces -convert big_endian -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(ENKF_Fortran_FLAGS "-g -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -warn all -traceback -debug all -check all,noarg_temp_created -implicitnone -DGFS -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-g -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -warn all -traceback -debug all -check all,noarg_temp_created -implicitnone -DWRF -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-g -free -assume nocc_omp " PARENT_SCOPE ) - elseif ( HOST-Venus OR HOST-Mars ) - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -mcmodel medium -shared-intel -g -traceback -debug -ftrapuv -check all,noarg_temp_created -fp-stack-check -fstack-protector -warn all,nointerfaces -convert big_endian -implicitnone -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(GSI_LDFLAGS "${OMPFLAG} ${MKL_FLAG}" PARENT_SCOPE) - set(ENKF_Fortran_FLAGS "-g -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -warn all -traceback -debug all -check all,noarg_temp_created -implicitnone -DGFS -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-g -O0 -fp-model source -convert big_endian -assume byterecl -implicitnone -warn all -traceback -debug all -check all,noarg_temp_created -implicitnone -DWRF -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-g -free -assume nocc_omp " PARENT_SCOPE ) - else() - set(GSI_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O0 -fp-model strict -convert big_endian -assume byterecl -implicitnone -g -traceback -debug -ftrapuv -check all,noarg_temp_created -fp-stack-check -fstack-protector -warn all,nointerfaces -D_REAL8_ ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(ENKF_Fortran_FLAGS "-O0 -xHOST -warn all -implicitnone -traceback -g -debug full -fp-model strict -convert big_endian -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS "-O0 -xHOST -warn all -implicitnone -traceback -g -debug full -fp-model strict -convert big_endian -D_REAL8_ ${OMPFLAG}" PARENT_SCOPE) - set (BACIO_Fortran_FLAGS "-g -free -assume nocc_omp " PARENT_SCOPE ) - endif() - #Common debug flags - set(GSI_CFLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -g -Dfunder" PARENT_SCOPE ) - set (BUFR_Fortran_PP_FLAGS " -P -traditional-cpp -C " PARENT_SCOPE ) - set (BUFR_Fortran_FLAGS "-g -r8 -fp-model strict -traceback -xSSE2 -axCORE-AVX2 ${OMPFLAG} " PARENT_SCOPE ) - set (BUFR_C_FLAGS "-g -traceback -DUNDERSCORE -axCORE-AVX2 -DDYNAMIC_ALLOCATION -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - set (CRTM_Fortran_FLAGS " -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${OMPFLAG} " PARENT_SCOPE ) -# set(CRTM_Fortran_FLAGS "-O0 -fp-model strict -free -convert big_endian -assume byterecl -implicitnone -mcmodel medium -shared-intel -g -traceback -debug -ftrapuv -check all,noarg_temp_created -fp-stack-check -fstack-protector -warn all,nointerfaces ${OMPFLAG} ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set (SFCIO_Fortran_FLAGS " -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (SIGIO_Fortran_FLAGS " -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (SP_Fortran_FLAGS " -g -ip -fp-model strict -assume byterecl -fpp -i${intsize} -r8 -convert big_endian -DLINUX ${OMPFLAG} " PARENT_SCOPE ) - set (SP_F77_FLAGS " -g -ip -fp-model strict -assume byterecl -convert big_endian -fpp -i${intsize} -r8 -DLINUX ${OMPFLAG} " PARENT_SCOPE ) - set (W3EMC_Fortran_FLAGS " -g -auto -assume nocc_omp -i${intsize} -r8 -convert big_endian -assume byterecl -fp-model strict ${OMPFLAG} " PARENT_SCOPE ) - set (NEMSIO_Fortran_FLAGS " -convert big_endian -free -assume byterecl -xSSE2 -fp-model strict -traceback -g ${MKL_FLAG} ${OMPFLAG} " PARENT_SCOPE ) - set (W3NCO_Fortran_FLAGS " -g -auto -assume nocc_omp -i${intsize} -r8 -convert big_endian -assume byterecl -fp-model strict ${OMPFLAG} " PARENT_SCOPE ) - set (W3NCO_C_FLAGS "-O0 -g -DUNDERSCORE -DLINUX -D__linux__ " PARENT_SCOPE ) - set( NCDIAG_Fortran_FLAGS "-free -assume byterecl -convert big_endian" PARENT_SCOPE ) - set(WRFLIB_Fortran_FLAGS "-DPOUND_FOR_STRINGIFY -O1 -g -fp-model source -assume byterecl -convert big_endian -g -traceback -D_REAL8_ ${MPI_Fortran_COMPILE_FLAGS}" PARENT_SCOPE) - set(WRFLIB_C_FLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -g -Dfunder" PARENT_SCOPE ) - endif() -endfunction() - -function (setGNU) - message("Setting GNU Compiler Flags") - set(GSI_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp -ffree-line-length-0" PARENT_SCOPE) - set(EXTRA_LINKER_FLAGS "-lgomp" PARENT_SCOPE) - set(GSI_CFLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -g -Dfunder" PARENT_SCOPE ) - set(ENKF_Fortran_FLAGS " -O3 -fconvert=big-endian -ffree-line-length-0 -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -DGFS -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS " -O3 -fconvert=big-endian -ffree-line-length-0 -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -DWRF -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(BUFR_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(BUFR_Fortran_PP_FLAGS " -P " PARENT_SCOPE) - set(BUFR_C_FLAGS " -O3 -g -DUNDERSCORE -DDYNAMIC_ALLOCATION -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - set(BACIO_Fortran_FLAGS " -O3 -fconvert=big-endian -ffree-form -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(CRTM_Fortran_FLAGS " -g -std=f2003 -fdollar-ok -O3 -fconvert=big-endian -ffree-form -fno-second-underscore -frecord-marker=4 -funroll-loops -static -Wall " PARENT_SCOPE) - set(NEMSIO_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(SIGIO_Fortran_FLAGS " -O3 -fconvert=big-endian -ffree-form -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(SFCIO_Fortran_FLAGS " -O3 -ffree-form -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(SP_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp -DLINUX" PARENT_SCOPE) - set(SP_F77_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp -DLINUX" PARENT_SCOPE) - set(W3EMC_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(W3NCO_Fortran_FLAGS " -O3 -fconvert=big-endian -ffixed-form -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ " PARENT_SCOPE) - set(W3NCO_C_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp" PARENT_SCOPE) - set(WRFLIB_Fortran_FLAGS " -O3 -fconvert=big-endian -ffast-math -fno-second-underscore -frecord-marker=4 -funroll-loops -ggdb -static -Wall -fno-range-check -D_REAL8_ -fopenmp -ffree-line-length-0" PARENT_SCOPE) - set( NCDIAG_Fortran_FLAGS "-ffree-line-length-none" PARENT_SCOPE ) - set( NDATE_Fortran_FLAGS "-fconvert=big-endian -DCOMMCODE -DLINUX -DUPPLITTLEENDIAN -O3 -Wl,-noinhibit-exec" PARENT_SCOPE) -endfunction() - -function (setPGI) - message("Setting PGI Compiler Flags") - set(CMAKE_Fortran_FLAGS_RELEASE "") - set(Fortran_FLAGS "" PARENT_SCOPE) - set(GSI_Fortran_FLAGS "-Minform=inform -O1 -byteswapio -D_REAL8_ -mp -Mfree" PARENT_SCOPE) - set(GSI_CFLAGS "-I. -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -g -Dfunder" PARENT_SCOPE ) - set(ENKF_Fortran_FLAGS " -O3 -byteswapio -fast -DGFS -D_REAL8_ -mp" PARENT_SCOPE) - set(UTIL_Fortran_FLAGS " -O3 -byteswapio -fast -DWRF -D_REAL8_ -mp" PARENT_SCOPE) - - set(BUFR_Fortran_FLAGS "-O1 -byteswapio -D_REAL8_ -mp" PARENT_SCOPE) - set(BUFR_Fortran_PP_FLAGS " -P " PARENT_SCOPE) - set(BUFR_C_FLAGS " -g -DUNDERSCORE -DDYNAMIC_ALLOCATION -DNFILES=32 -DMAXCD=250 -DMAXNC=600 -DMXNAF=3" PARENT_SCOPE ) - - set(BACIO_C_INCLUDES " -I/usr/include/malloc" PARENT_SCOPE) - set(BACIO_Fortran_FLAGS " -O3 -byteswapio -fast -D_REAL8_ -mp -Mfree" PARENT_SCOPE) - set(CRTM_Fortran_FLAGS " -O1 -byteswapio -module ../../include -Mfree " PARENT_SCOPE) - set(NEMSIO_Fortran_FLAGS " -O1 -byteswapio -D_REAL8_ -mp" PARENT_SCOPE) - set(SIGIO_Fortran_FLAGS " -O3 -Mfree -byteswapio -fast -D_REAL8_ -mp" PARENT_SCOPE) - set(SFCIO_Fortran_FLAGS " -O3 -byteswapio -Mfree -fast -D_REAL8_ -mp" PARENT_SCOPE) - set(SP_Fortran_FLAGS " -O1 -byteswapio -D_REAL8_ -mp" PARENT_SCOPE) - set(SP_F77_FLAGS "-DLINUX -O1 -byteswapio -D_REAL8_ -mp" PARENT_SCOPE) - set(W3EMC_Fortran_FLAGS " -O1 -byteswapio -D_REAL8_ " PARENT_SCOPE) - set(W3NCO_Fortran_FLAGS " -O1 -byteswapio -D_REAL8_ " PARENT_SCOPE) - set(W3NCO_C_FLAGS " -O1 -D_REAL8_ -mp" PARENT_SCOPE) - set(WRFLIB_Fortran_FLAGS "-Minform=inform -O1 -byteswapio -D_REAL8_ -mp -Mfree" PARENT_SCOPE) - set (NDATE_Fortran_FLAGS "-DCOMMCODE -DLINUX -DUPPLITTLEENDIAN -O3 " PARENT_SCOPE) -endfunction() diff --git a/modulefiles/module-run.gaea b/modulefiles/module-run.gaea deleted file mode 100644 index a4d2468207..0000000000 --- a/modulefiles/module-run.gaea +++ /dev/null @@ -1,32 +0,0 @@ -#%Module###################################################################### - -module load modules/3.2.10.5 -module load xtshutdown/2.2.0-3.70 -module load alps/6.1.4-18.1 -module load Base-opts/2.1.3-2.16 -module load nodestat/2.2-2.40 -module load intel/16.0.3.210 -module load sdb/2.2.1-3.98 -module load craype-network-aries -module load udreg/2.3.2-4.6 -module load craype/2.5.5 -module load ugni/6.0.12-2.1 -module load cray-libsci/16.06.1 -module load gni-headers/5.0.7-3.1 -module load pmi/5.0.10-1.0000.11050.0.0.ari -module load dmapp/7.1.0-12.37 -module load atp/2.0.2 -module load xpmem/0.1-4.5 -module load PrgEnv-intel/6.0.3 -module load llm/20.2.4-3.18 -module load craype-broadwell -module load nodehealth/5.2.0-5.46 -module load cray-mpich/7.4.0 -module load system-config/2.2.18-3.30 -module load TimeZoneEDT -module load sysadm/2.2.2-3.39 -module load CmrsEnv -module load pdsh/2.26-6.1 -module load DefApps -module use /lustre/f1/pdata/ncep_shared/fv3/modulefiles -module load grib_util diff --git a/modulefiles/module-service.gaea b/modulefiles/module-service.gaea deleted file mode 100644 index 72e653023d..0000000000 --- a/modulefiles/module-service.gaea +++ /dev/null @@ -1,12 +0,0 @@ -#%Module###################################################################### -module load modules/3.2.10.3 -module load moab/default -module load eswrap/1.3.3-1.020200.1278.0 -module load torque/default -module load craype-network-aries -module load globus/5.2.1 -module load switch/1.0-1.0502.60522.1.61.ari -module load uberftp/2.6 -module load hsi -module use /lustre/f1/pdata/ncep_shared/emc.nemspara/soft/modulefiles -module load prod_util diff --git a/modulefiles/module_base.gaea b/modulefiles/module_base.gaea deleted file mode 100644 index 5cfc0aaf46..0000000000 --- a/modulefiles/module_base.gaea +++ /dev/null @@ -1,42 +0,0 @@ -#%Module###################################################################### -## -## FV3GFS prerequisites - - -proc ModulesHelp {} { - puts stderr "\tcit - loads modules required for building and running FV3 under NEMS on gaea" -} - -module-whatis "loads NEMS FV3 prerequisites on Surge and Luna" - -# NOTE: the "module purge" and loading of the module command are -# handled by the module-setup.sh (or .csh) script. -## -## load programming environment -## this typically includes compiler, MPI and job scheduler -## -module load PrgEnv-intel/6.0.3 -module rm intel -module load intel/16.0.3.210 -module load cray-netcdf -module load alps -## -## load nwprod libraries -## -set nceplibs /lustre/f1/pdata/ncep_shared/NCEPLIBS/lib/ -setenv NCEPLIBS ${nceplibs} -module use ${nceplibs}/modulefiles -module load bacio-intel-sandybridge/2.0.1 -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load nemsio-intel-sandybridge/2.2.3 -## -## set esmf variables while waiting to get 7.1.39rb -## -module load esmflocal/7.1.52b - -# Get setpdy.sh, ndate, etc. -module use /lustre/f1/pdata/ncep_shared/emc.nemspara/soft/modulefiles -module load prod_util diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion new file mode 100644 index 0000000000..2c26ea8931 --- /dev/null +++ b/modulefiles/module_base.orion @@ -0,0 +1,34 @@ +#%Module###################################################################### +## +## FV3GFS prerequisites +## + +module load intel/2018.4 +module load impi/2018.4 +module load wgrib/2.0.8 +#module load hpss/hpss +#module load nco/4.7.0 +module load hdf5/1.10.5-parallel +module load netcdf/4.7.2-parallel + +module load gempak/7.5.1 + +#Load from official NCEPLIBS +module use /apps/contrib/NCEPLIBS/orion/modulefiles +module load grib_util/1.2.0 +module load prod_util/1.2.0 +module load g2tmpl/1.6.0 +module load crtm/2.3.0 + +#Load from GWV NCEPLIBS +module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load esmflocal/8_0_48b +#module load netcdfp/4.7.4 + +module load contrib +module load rocoto/1.3.1 +module load slurm/19.05.3-2 + +# python +module load python/3.7.5 + diff --git a/modulefiles/module_fcst.jet b/modulefiles/module_fcst.jet deleted file mode 100644 index a9e283c6c4..0000000000 --- a/modulefiles/module_fcst.jet +++ /dev/null @@ -1,32 +0,0 @@ -#%Module###################################################################### -## -## nems prerequisites -## - -proc ModulesHelp {} { - puts stderr "The prerequisites for compiling or running FV3 on Jet. " -} - -module load newdefaults intel/15.0.3.187 impi/5.1.3.181 szip hdf5 netcdf4/4.2.1.1 - -module use /mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib/modulefiles -module load bacio-intel-sandybridge/2.0.2 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bufr-intel-sandybridge/11.0.2 -module load nemsio-intel-sandybridge/2.2.2 -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load esmflocal/7_1_0rimpi - -# extras for grib_util -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.6 -module load g2-intel-sandybridge/2.5.0 - -module use /lfs3/projects/hwrf-vd/soft/modulefiles/ -module load prod_util - -# mpiserial on Jet includes a cfp wrapper -module load mpiserial diff --git a/modulefiles/module_nemsutil.gaea b/modulefiles/module_nemsutil.gaea deleted file mode 100644 index e6c410e6b3..0000000000 --- a/modulefiles/module_nemsutil.gaea +++ /dev/null @@ -1,39 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module purge -#cleanup - unset _LMFILES_ - unset _LMFILES_000 - unset _LMFILES_001 - unset LOADEDMODULES - module use -a /opt/cray/ari/modulefiles - module use -a /opt/cray/pe/ari/modulefiles - module use -a /opt/cray/pe/craype/default/modulefiles - source /etc/opt/cray/pe/admin-pe/site-config -export NCEPLIBS=/lustre/f1/pdata/ncep_shared/NCEPLIBS/lib -module use $NCEPLIBS/modulefiles -module load modules -module load PrgEnv-intel -module load cray-mpich -module unload craype-broadwell -module load craype-sandybridge - -module load sigio-intel-sandybridge/2.0.1 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load sp-intel-sandybridge/2.0.2 -module load bacio-intel-sandybridge/2.0.1 -module load ip-intel-sandybridge/3.0.0 -module load sfcio-intel-sandybridge/1.0.0 -module load gfsio-intel-sandybridge/1.1.0 -module load landsfcutil-intel-sandybridge/2.1.0 - -module load nemsio-intel-sandybridge/2.2.3 - -#export NEMSIO_INC=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/incmod -#export NEMSIO_LIB=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/libnemsio_v2.2.3.a - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/module_nemsutil.hera b/modulefiles/module_nemsutil.hera deleted file mode 100644 index f1908fdf6e..0000000000 --- a/modulefiles/module_nemsutil.hera +++ /dev/null @@ -1,10 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles -module load w3nco/2.0.6 -module load bacio/2.0.3 -module load nemsio/2.2.3 - -export FCMP=ifort diff --git a/modulefiles/module_nemsutil.jet b/modulefiles/module_nemsutil.jet deleted file mode 100644 index 7c1258b821..0000000000 --- a/modulefiles/module_nemsutil.jet +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Loading Intel Compiler Suite - -module load newdefaults -module load intel/15.0.3.187 - - -# Loding nceplibs modules -module use $NCEPLIBS/modulefiles -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load bacio-intel-sandybridge/2.0.1 -module load nemsio-intel-sandybridge/2.2.2 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/module_nemsutil.theia b/modulefiles/module_nemsutil.theia deleted file mode 100644 index 45685118eb..0000000000 --- a/modulefiles/module_nemsutil.theia +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Loading Intel Compiler Suite -module load intel/14.0.2 -module load impi/5.1.2.150 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load nemsio/v2.2.1 - -export FCMP=ifort diff --git a/modulefiles/module_nemsutil.wcoss b/modulefiles/module_nemsutil.wcoss deleted file mode 100644 index f421c1a88b..0000000000 --- a/modulefiles/module_nemsutil.wcoss +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Loading Intel Compiler Suite -module load ics/14.0.1 - -# Loding nceplibs modules -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load nemsio/v2.2.1 - -export FCMP=ifort diff --git a/modulefiles/module_nemsutil.wcoss_cray b/modulefiles/module_nemsutil.wcoss_cray deleted file mode 100644 index 371c8e0245..0000000000 --- a/modulefiles/module_nemsutil.wcoss_cray +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 - -export NEMSIO_INC=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/incmod -export NEMSIO_LIB=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/libnemsio_v2.2.3.a - -export FCMP=ftn diff --git a/modulefiles/module_nemsutil.wcoss_cray_userlib b/modulefiles/module_nemsutil.wcoss_cray_userlib deleted file mode 100644 index 53fad475a5..0000000000 --- a/modulefiles/module_nemsutil.wcoss_cray_userlib +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Load Intel environment -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -# Load NCEPLIBS modules -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use $MOD_PATH -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 - -export FCMP=ftn diff --git a/modulefiles/module_nemsutil.wcoss_dell_p3 b/modulefiles/module_nemsutil.wcoss_dell_p3 deleted file mode 100644 index e93d581651..0000000000 --- a/modulefiles/module_nemsutil.wcoss_dell_p3 +++ /dev/null @@ -1,12 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load nemsio/2.2.3 - -export FCMP=ifort diff --git a/modulefiles/modulefile.fv3nc2nemsio.orion b/modulefiles/modulefile.fv3nc2nemsio.orion new file mode 100644 index 0000000000..2913812779 --- /dev/null +++ b/modulefiles/modulefile.fv3nc2nemsio.orion @@ -0,0 +1,17 @@ +#%Module##################################################### +## Module file for fv3nc2nemsio +############################################################# + +module load intel/2018.4 +module load impi/2018.4 + +module load netcdf/4.7.2 +module load hdf5/1.10.5 + +module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load bacio-intel-sandybridge/2.0.2 +module load nemsio-intel-sandybridge/2.2.3 +module load w3nco-intel-sandybridge/2.0.6 + +export FCMP="ifort" +export FFLAGS="-g -O2 -traceback" diff --git a/modulefiles/modulefile.fv3nc2nemsio.theia b/modulefiles/modulefile.fv3nc2nemsio.theia deleted file mode 100644 index 83bf6bff1c..0000000000 --- a/modulefiles/modulefile.fv3nc2nemsio.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for fv3nc2nemsio -############################################################# - -module load intel/14.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load w3nco/v2.0.6 - -export FCMP="ifort" -export FFLAGS="-g -O2 -traceback" diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.gaea b/modulefiles/modulefile.global_emcsfc_ice_blend.gaea deleted file mode 100755 index abed969ee2..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.gaea +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_ice_blend -############################################################# - -# intel compiler - -module load PrgEnv-intel -module unload craype-broadwell -module load craype-haswell -export FCOMP=ftn -export FFLAGS="-O0 -i4 -craype-verbose" - -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.1 -module load jasper-intel-sandybridge/1.900.1 -#export JASPER_LIB=/usrx/local/prod/jasper/1.900.1/intel/haswell/lib/libjasper.a -module load zlib-intel-sandybridge/1.2.7 -module load png-intel-sandybridge/1.2.44 -module load g2-intel-sandybridge/2.5.0 diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.jet b/modulefiles/modulefile.global_emcsfc_ice_blend.jet deleted file mode 100644 index 8321cd1bdd..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.jet +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## emcsfc_ice_blend build module for Jet -############################################################# - -export FCOMP=ifort -export FFLAGS="-O0 -i4" - -# load ncep library modules - -module use $NCEPLIBS/modulefiles - -module load newdefaults -module load intel/15.0.3.187 - -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.2 -module load jasper-intel-sandybridge/1.900.1 -module load zlib-intel-sandybridge/1.2.7 -module load png-intel-sandybridge/1.2.44 -module load g2-intel-sandybridge/3.1.0 diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.gaea b/modulefiles/modulefile.global_emcsfc_snow2mdl.gaea deleted file mode 100755 index ed3b1d868a..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.gaea +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_snow2mdl -############################################################# - -# intel compiler - -module load PrgEnv-intel -module load craype-haswell -export FCOMP=ftn -export FFLAGS="-O0 -r8 -i4 -FR -openmp -convert big_endian -assume byterecl -craype-verbose" - -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.1 -module load jasper-intel-sandybridge/1.900.1 -module load zlib-intel-sandybridge/1.2.7 -module load png-intel-sandybridge/1.2.44 -module load g2-intel-sandybridge/2.5.0 -module load landsfcutil-intel-sandybridge/2.0.0 diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.jet b/modulefiles/modulefile.global_emcsfc_snow2mdl.jet deleted file mode 100644 index a94564ffd3..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.jet +++ /dev/null @@ -1,32 +0,0 @@ -#%Module##################################################### -## emcsfc_snow2mdl build module for Jet -############################################################# - -# load intel compiler - -export FCOMP=ifort - -#source /apps/Modules/default/init/bash - -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 - -export FFLAGS="-O0 -r8 -i4 -FR -axSSE4.2,AVX,CORE-AVX2 -openmp -convert big_endian -assume byterecl" -export IPMOD="/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib/ip/v3.0.0/src" - -# load ncep library modules - -module use $NCEPLIBS/modulefiles -module load ip-intel-sandybridge/3.0.0 -#module load ip-intel-sandybridge/3.0.1 <-- would like -module load sp-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.2 -module load jasper-intel-sandybridge/1.900.1 -module load zlib-intel-sandybridge/1.2.7 -#module load zlib-intel-sandybridge/1.2.11 <-- would like -module load png-intel-sandybridge/1.2.44 -#module load png-intel-sandybridge/1.2.59 <-- would like -module load g2-intel-sandybridge/3.1.0 -module load landsfcutil-intel/2.1.0 diff --git a/modulefiles/modulefile.grib_util.jet b/modulefiles/modulefile.grib_util.jet deleted file mode 100644 index 977b12b1f3..0000000000 --- a/modulefiles/modulefile.grib_util.jet +++ /dev/null @@ -1,18 +0,0 @@ -#%Module###################################################################### -module use -a $MOD_PATH - -module load newdefaults intel/15.0.3.187 - -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.6 - -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load ip-intel-sandybridge/2.0.0 -module load sp-intel-sandybridge/2.0.2 -module load g2-intel-sandybridge/2.5.0 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.grib_util.theia b/modulefiles/modulefile.grib_util.theia deleted file mode 100644 index ecdd678049..0000000000 --- a/modulefiles/modulefile.grib_util.theia +++ /dev/null @@ -1,20 +0,0 @@ -#%Module###################################################################### -module use -a $MOD_PATH - -module load intel/14.0.2 - -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 - - -module load bacio/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2/v3.1.0 - -export FCMP=ifort -export CCMP=icc - diff --git a/modulefiles/modulefile.grib_util.wcoss b/modulefiles/modulefile.grib_util.wcoss deleted file mode 100644 index 0ae2e8f49e..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss +++ /dev/null @@ -1,32 +0,0 @@ -#%Module###################################################################### -proc ModulesHelp { } { - puts stderr "Load modules for building GRIB utilities" -} -module-whatis "This module loads the modules and libraries for building\ - the GRIB utilities, including jasper, png, zlib, bacio, g2,\ - w3emc, w3nco, ip, sp, and iobuf." - -conflict build_grib_util - -# -# Loading required system modules -# - module load ics - module switch ics/15.0.6 - module load jasper/v1.900.1 - module load png/v1.2.44 - module load z/v1.2.6 - -# Loading Intel-Compiled NCEP Libraries - module load bacio/v2.0.1 - module load w3emc/v2.2.0 - module load w3nco/v2.0.6 - module load ip/v3.0.0 - module load sp/v2.0.2 - - # pre-implemented g2 v3.1.0 - module use /nwtest2/lib/modulefiles - module load g2/v3.1.0 - -setenv FCMP ifort -setenv CCMP icc diff --git a/modulefiles/modulefile.grib_util.wcoss_cray b/modulefiles/modulefile.grib_util.wcoss_cray deleted file mode 100644 index 191baa15df..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_cray +++ /dev/null @@ -1,22 +0,0 @@ -#%Module###################################################################### -module unload craype-haswell -module load craype-sandybridge -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel/15.0.6.233 -module load iobuf/2.0.7 - -module load bacio-intel/2.0.1 -module load w3emc-intel/2.2.0 -module load w3nco-intel/2.0.6 -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 -module load jasper-gnu-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.49 -module load zlib-intel-sandybridge/1.2.7 - -module use /gpfs/hps/nco/ops/nwtest/lib/modulefiles -module load g2-intel/3.1.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.grib_util.wcoss_cray_userlib b/modulefiles/modulefile.grib_util.wcoss_cray_userlib deleted file mode 100644 index 56ebe0c336..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_cray_userlib +++ /dev/null @@ -1,22 +0,0 @@ -#%Module###################################################################### -module unload craype-haswell -module load craype-sandybridge -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel/15.0.6.233 -module load iobuf/2.0.7 - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load g2/v3.1.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.grib_util.wcoss_dell_p3 b/modulefiles/modulefile.grib_util.wcoss_dell_p3 deleted file mode 100644 index bbebec9cbf..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_dell_p3 +++ /dev/null @@ -1,15 +0,0 @@ -#%Module###################################################################### - -module load bacio/2.0.2 -module load w3emc/2.3.0 -module load w3nco/2.0.6 -module load ip/3.0.1 -module load sp/2.0.2 - -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 -module load g2/3.1.0 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.prod_util.jet b/modulefiles/modulefile.prod_util.jet deleted file mode 100755 index d124cd0948..0000000000 --- a/modulefiles/modulefile.prod_util.jet +++ /dev/null @@ -1,16 +0,0 @@ -#%Module - -set root /lfs3/projects/hwrf-vd/soft/prod_util-1.0.18 - -module-whatis This module sets the environment variables for the NCEP Central Operations production utilities - -conflict prod_util - -prepend-path UTILROOT $root -prepend-path PATH $root/ush -prepend-path PYTHONPATH $root/ush -setenv NDATE $root/exec/ndate -setenv MDATE $root/exec/mdate -setenv NHOUR $root/exec/nhour -setenv FSYNC $root/exec/fsync_file - diff --git a/modulefiles/modulefile.prod_util.theia b/modulefiles/modulefile.prod_util.theia deleted file mode 100644 index 3ad4d37bf6..0000000000 --- a/modulefiles/modulefile.prod_util.theia +++ /dev/null @@ -1,8 +0,0 @@ -#%Module###################################################################### -## -module load intel/16.1.150 -module use -a $MOD_PATH -module load w3nco/v2.0.6 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.prod_util.wcoss_cray b/modulefiles/modulefile.prod_util.wcoss_cray deleted file mode 100644 index 51031c6bdd..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_cray +++ /dev/null @@ -1,11 +0,0 @@ -#%Module##################################################### -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module load w3nco-intel/2.0.6 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.prod_util.wcoss_cray_userlib b/modulefiles/modulefile.prod_util.wcoss_cray_userlib deleted file mode 100644 index dd5209fcf0..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_cray_userlib +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load w3nco/v2.0.6 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.prod_util.wcoss_dell_p3 b/modulefiles/modulefile.prod_util.wcoss_dell_p3 deleted file mode 100644 index 9186e13eb8..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_dell_p3 +++ /dev/null @@ -1,6 +0,0 @@ -#%Module##################################################### - -module load w3nco/2.0.6 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.regrid_nemsio.orion b/modulefiles/modulefile.regrid_nemsio.orion new file mode 100644 index 0000000000..398d69f5a0 --- /dev/null +++ b/modulefiles/modulefile.regrid_nemsio.orion @@ -0,0 +1,21 @@ +#%Module##################################################### +## Module file for regrid_nemsio +############################################################# + +module load intel/2018.4 +module load impi/2018.4 + +module load netcdf/4.7.2 +module load hdf5/1.10.5 + +module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load bacio-intel-sandybridge/2.0.2 +module load w3nco-intel-sandybridge/2.0.6 +module load nemsio-intel-sandybridge/2.2.3 +module load sp-intel-sandybridge/2.0.2 + +export FCMP="$FCOMP" +export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -lnetcdf -L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl -lhdf5 -lz" +export NETCDF_LDFLAGS="-L${NETCDF}/lib -lnetcdf -lnetcdff -lnetcdf -L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl -lhdf5 -lz" +export NETCDF_INCLUDE=-I$NETCDF/include +#export FCMP="mpif90 -f90=ifort" diff --git a/modulefiles/modulefile.regrid_nemsio.theia b/modulefiles/modulefile.regrid_nemsio.theia deleted file mode 100644 index bcc0d169f1..0000000000 --- a/modulefiles/modulefile.regrid_nemsio.theia +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for regrid_nemsio -############################################################# - -module load intel/14.0.2 -module load impi/4.1.3.048 -module load netcdf/4.3.0 -module load hdf5/1.8.14 - -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load w3nco/v2.0.6 -module load sp/v2.0.2 - -export FCMP="mpif90 -f90=ifort" diff --git a/modulefiles/modulefile.storm_reloc_v5.1.0.gaea b/modulefiles/modulefile.storm_reloc_v5.1.0.gaea deleted file mode 100644 index 7a942dd9bd..0000000000 --- a/modulefiles/modulefile.storm_reloc_v5.1.0.gaea +++ /dev/null @@ -1,23 +0,0 @@ -#%Module##################################################### -## Module file for storm_reloc_v5.1.0 -############################################################# -module load craype-network-aries -module load craype-haswell -module load craype/2.3.0 -module load PrgEnv-intel -module load intel -module load cray-mpich - -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 -module load bacio-intel-sandybridge/2.0.1 -module load w3emc-intel-sandybridge/2.2.0 -module load w3nco-intel-sandybridge/2.0.6 -module load sigio-intel-sandybridge/2.0.1 -module load sp-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.2 -module load nemsiogfs-intel-sandybridge/2.0.1 -module load g2-intel-sandybridge/2.5.0 - -export FC=ftn diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.jet b/modulefiles/modulefile.storm_reloc_v6.0.0.jet deleted file mode 100644 index e058ee79f9..0000000000 --- a/modulefiles/modulefile.storm_reloc_v6.0.0.jet +++ /dev/null @@ -1,25 +0,0 @@ -#%Module##################################################### -## Module file for storm_reloc_v6.0.0 -############################################################# - -module load newdefaults -module load intel/15.0.3.187 -module load impi/5.1.3.181 -module use $NCEPLIBS/modulefiles - -module load sigio-intel-sandybridge/2.0.1 -module load sfcio-intel-sandybridge/1.0.0 -module load g2-intel-sandybridge/2.5.0 -module load w3nco-intel-sandybridge/2.0.6 -module load w3emc-intel-sandybridge/2.2.0 -module load bacio-intel-sandybridge/2.0.1 -module load jasper-intel-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.6 -module load sp-intel-sandybridge/2.0.2 -module load ip-intel-sandybridge/2.0.0 -module load bufr-intel-sandybridge/11.0.0 -module load nemsio-intel-sandybridge/2.2.2 -module load nemsiogfs-intel/2.0.1 - -set FC mpiifort diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.orion b/modulefiles/modulefile.storm_reloc_v6.0.0.orion new file mode 100644 index 0000000000..49b02a83aa --- /dev/null +++ b/modulefiles/modulefile.storm_reloc_v6.0.0.orion @@ -0,0 +1,18 @@ +#%Module##################################################### +## Module file for storm_reloc_v6.0.0 - Hera +############################################################# + +module use -a /work/noaa/noaatest/NCEPLIBS/lib/modulefiles +module load w3emc-intel-sandybridge/2.3.0 +module load w3nco-intel-sandybridge/2.0.6 +module load bacio-intel-sandybridge/2.0.2 +module load sp-intel-sandybridge/2.0.2 +module load nemsio-intel-sandybridge/2.2.3 +module load nemsiogfs-intel/2.0.1 +module load sigio-intel-sandybridge/2.0.1 +module load jasper/1.900.1 +module load png-intel-sandybridge/1.2.44 +module load zlib-intel-sandybridge/1.2.7 +module load g2-intel-sandybridge/3.1.0 + +set FC mpiifort diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.theia b/modulefiles/modulefile.storm_reloc_v6.0.0.theia deleted file mode 100644 index f9835db930..0000000000 --- a/modulefiles/modulefile.storm_reloc_v6.0.0.theia +++ /dev/null @@ -1,26 +0,0 @@ -#%Module##################################################### -## Module file for storm_reloc_v6.0.0 -############################################################# - -module use /scratch3/NCEPDEV/nwprod/lib/modulefiles - -module load intel -module load impi -module load nco - -module load sigio/v2.0.1 -module load sfcio/v1.0.0 -module load g2/v2.5.0 -module load w3nco/v2.0.6 -module load w3emc/v2.0.5 -module load bacio/v2.0.1 -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load sp/v2.0.2 -module load ip/v2.0.0 -module load bufr/v10.2.5 -module load nemsio/v2.2.2 -module load nemsiogfs/v2.0.1 - -set FC mpiifort diff --git a/modulefiles/modulefile.wgrib2.theia b/modulefiles/modulefile.wgrib2.theia deleted file mode 100644 index b1568e8cea..0000000000 --- a/modulefiles/modulefile.wgrib2.theia +++ /dev/null @@ -1,19 +0,0 @@ -#%Module###################################################################### - -module load intel/14.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -module load szip/2.1 - -module use -a $MOD_PATH -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2c/v1.5.0 - -export NETCDF_INCLUDE="-I${NETCDF}/include" - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.wgrib2.wcoss b/modulefiles/modulefile.wgrib2.wcoss deleted file mode 100644 index 0eea72e391..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss +++ /dev/null @@ -1,24 +0,0 @@ -#%Module###################################################################### -############################################################# -## Lin.Gan@noaa.gov -## EMC -## wgrib2 v2.0.5 -############################################################# -proc ModulesHelp { } { -puts stderr "Set environment veriables for wgrib2" -puts stderr "This module initializes the users environment" -puts stderr "to build the wgrib2 for WCOSS production.\n" -} -module-whatis "wgrib2" - -set ver v2.0.5 - -module load ics/15.0.6 -module load NetCDF/4.2/serial -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2c/v1.5.0 - diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray b/modulefiles/modulefile.wgrib2.wcoss_cray deleted file mode 100644 index 4d933141ad..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_cray +++ /dev/null @@ -1,13 +0,0 @@ -#%Module###################################################################### -module load PrgEnv-gnu/5.2.56 -module load cray-netcdf/4.3.2 -module load craype/2.3.0 -module load craype-sandybridge -module load /gpfs/hps/nco/ops/nwtest/lib/modulefiles/g2c-gnu/1.5.0 - -module load jasper-gnu-sandybridge/1.900.1 -module load png-gnu-sandybridge/1.2.49 -module load zlib-gnu-sandybridge/1.2.7 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib b/modulefiles/modulefile.wgrib2.wcoss_cray_userlib deleted file mode 100644 index 7b41a17f9f..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib +++ /dev/null @@ -1,15 +0,0 @@ -#%Module###################################################################### -module load PrgEnv-gnu/5.2.56 -module load cray-netcdf/4.3.2 -module load craype/2.3.0 -module load craype-sandybridge - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load g2c/v1.5.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.wgrib2.wcoss_dell_p3 b/modulefiles/modulefile.wgrib2.wcoss_dell_p3 deleted file mode 100644 index 9a43e3ffd9..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_dell_p3 +++ /dev/null @@ -1,11 +0,0 @@ -#%Module###################################################################### - -module load ips/18.0.1.163 - -module load g2c/1.5.0 -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/wafs_v5.0.0.dell b/modulefiles/wafs_v5.0.0.dell deleted file mode 100755 index 1c242c111c..0000000000 --- a/modulefiles/wafs_v5.0.0.dell +++ /dev/null @@ -1,37 +0,0 @@ -#%Module################################################ -## -## autogenerated via 'GetAppsEnv' by Eugene Mirvis -## -##____________________________________________________ -proc ModulesHelp { } { -puts stderr "Set environment veriables for WAFS" -puts stderr "This module initializes the environment\n" -} -module-whatis " WAFS" - -set ver v5.0.0 - -# Loading Intel Compiler Suite -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load prod_util/1.1.0 -module load prod_envir/1.0.2 - -module load jasper/1.900.1 -module load libpng/1.2.59 -module load NetCDF/3.6.3 -module load zlib/1.2.11 - -module load w3emc/2.3.0 -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load g2/3.1.0 -module load g2tmpl/1.5.0 -module load sfcio/1.0.0 -module load nemsio/2.2.3 -module load ip/3.0.1 -module load sp/2.0.2 -module load bufr/11.2.0 -module load bufr_dumplist/1.5.0 - diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 4922d15777..5ec82dca46 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -1,110 +1,87 @@ #!/bin/sh -set -xu +set -xue topdir=$(pwd) echo $topdir -if [ $# -eq 1 ]; then -model=$1 -fi -model=${model:-"uncoupled"} - -if [ $model = "coupled" ]; then -echo fv3_mom6_cice5 checkout ... -rm -f ${topdir}/checkout-fv3_coupled.log - -if [[ ! -d fv3_coupled.fd ]] ; then - git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 - cd fv3_coupled.fd - git checkout v3.1 - git submodule update --init --recursive - cd ${topdir} -else - echo 'Skip. Directory fv3_coupled.fd already exists.' -fi -fi - -if [ $model != "coupled" ]; then echo fv3gfs checkout ... if [[ ! -d fv3gfs.fd ]] ; then rm -f ${topdir}/checkout-fv3gfs.log - git clone gerrit:NEMSfv3gfs fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 + git clone https://github.com/ufs-community/ufs-weather-model fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 cd fv3gfs.fd - git checkout gfs.v16_PhysicsUpdate + git checkout GFS.v16.0.1 git submodule update --init --recursive cd ${topdir} else echo 'Skip. Directory fv3gfs.fd already exists.' fi + +echo gsi checkout ... +if [[ ! -d gsi.fd ]] ; then + rm -f ${topdir}/checkout-gsi.log + git clone --recursive gerrit:ProdGSI gsi.fd >> ${topdir}/checkout-gsi.log 2>&1 + cd gsi.fd +# git checkout gfsda.v16.0.0 + git checkout feature/parallel_ncio + git submodule update + cd ${topdir} +else + echo 'Skip. Directory gsi.fd already exists.' fi -if [ $model != "coupled" ]; then - echo gsi checkout ... - if [[ ! -d gsi.fd ]] ; then - rm -f ${topdir}/checkout-gsi.log - git clone --recursive gerrit:ProdGSI gsi.fd >> ${topdir}/checkout-gsi.fd.log 2>&1 - cd gsi.fd - git checkout 3664477befd7ef2ba8299c3a5461747a78da30a0 - git submodule update - cd ${topdir} - else - echo 'Skip. Directory gsi.fd already exists.' - fi +echo gldas checkout ... +if [[ ! -d gldas.fd ]] ; then + rm -f ${topdir}/checkout-gldas.log + git clone https://github.com/NOAA-EMC/GLDAS gldas.fd >> ${topdir}/checkout-gldas.fd.log 2>&1 + cd gldas.fd + git checkout gldas_gfsv16_release.v1.0.0 + cd ${topdir} +else + echo 'Skip. Directory gldas.fd already exists.' fi -if [ $model != "coupled" ]; then - echo ufs_utils checkout ... - if [[ ! -d ufs_utils.fd ]] ; then - rm -f ${topdir}/checkout-ufs_utils.log - git clone https://github.com/NOAA-EMC/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 - cd ufs_utils.fd - #git checkout v1.1.0 - cd ${topdir} - else - echo 'Skip. Directory ufs_utils.fd already exists.' - fi +echo ufs_utils checkout ... +if [[ ! -d ufs_utils.fd ]] ; then + rm -f ${topdir}/checkout-ufs_utils.log + git clone https://github.com/NOAA-EMC/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 + cd ufs_utils.fd + git checkout release/ops-gfsv16 + cd ${topdir} +else + echo 'Skip. Directory ufs_utils.fd already exists.' fi echo EMC_post checkout ... if [[ ! -d gfs_post.fd ]] ; then rm -f ${topdir}/checkout-gfs_post.log - git clone --recursive https://github.com/NOAA-EMC/EMC_post.git gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 - #git clone --recursive gerrit:EMC_post_gtg gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 + git clone https://github.com/NOAA-EMC/EMC_post.git gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 cd gfs_post.fd - #git checkout ncep_post.v8.0.27e - #git checkout ncep_post.v8.0.27e - #git checkout ncep_post_gtg.v1.0.6c -# use develop branch (Oct 9, 2019) - git checkout 454aa4f797eb322e356271c8537174a028e7b0f9 + git checkout upp_gfsv16_release.v1.0.5 cd ${topdir} else echo 'Skip. Directory gfs_post.fd already exists.' fi -if [ $model != "coupled" ]; then - echo EMC_gfs_wafs checkout ... - if [[ ! -d gfs_wafs.fd ]] ; then - rm -f ${topdir}/checkout-gfs_wafs.log - git clone --recursive https://github.com/NOAA-EMC/EMC_gfs_wafs.git gfs_wafs.fd >> ${topdir}/checkout-gfs_wafs.log 2>&1 - cd gfs_wafs.fd - git checkout gfs_wafs.v5.0.11 - cd ${topdir} - else - echo 'Skip. Directory gfs_wafs.fd already exists.' - fi +echo EMC_gfs_wafs checkout ... +if [[ ! -d gfs_wafs.fd ]] ; then + rm -f ${topdir}/checkout-gfs_wafs.log + git clone --recursive https://github.com/NOAA-EMC/EMC_gfs_wafs.git gfs_wafs.fd >> ${topdir}/checkout-gfs_wafs.log 2>&1 + cd gfs_wafs.fd + git checkout gfs_wafs.v5.0.11 + cd ${topdir} +else + echo 'Skip. Directory gfs_wafs.fd already exists.' fi -if [ $model != "coupled" ]; then - echo EMC_verif-global checkout ... - if [[ ! -d verif-global.fd ]] ; then - rm -f ${topdir}/checkout-verif-global.log - git clone --recursive gerrit:EMC_verif-global verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1 - cd verif-global.fd - git checkout verif_global_v1.2.2 - cd ${topdir} - else - echo 'Skip. Directory verif-global.fd already exist.' - fi +echo EMC_verif-global checkout ... +if [[ ! -d verif-global.fd ]] ; then + rm -f ${topdir}/checkout-verif-global.log + git clone --recursive https://github.com/NOAA-EMC/EMC_verif-global.git verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1 + cd verif-global.fd + git checkout verif_global_v1.6.0 + cd ${topdir} +else + echo 'Skip. Directory verif-global.fd already exist.' fi exit 0 diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh index f6e1b9ca3b..d0b93b95ee 100644 --- a/sorc/machine-setup.sh +++ b/sorc/machine-setup.sh @@ -20,8 +20,24 @@ target="" USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}` ##--------------------------------------------------------------------------- export hname=`hostname | cut -c 1,1` -if [[ -d /scratch1 ]] ; then -if [ $hname == 'h' ] ; then +if [[ -d /work ]] ; then + # We are on MSU Orion + if ( ! eval module help > /dev/null 2>&1 ) ; then + echo load the module command 1>&2 + source /apps/lmod/init/$__ms_shell + fi + target=orion + module purge + module load intel/2018.4 + module load impi/2018.4 + export NCEPLIBS=/apps/contrib/NCEPLIBS/orion + export WRFPATH=$NCEPLIBS/wrf.shared.new/v1.1.1/src + module use $NCEPLIBS/modulefiles + export myFC=mpiifort + export FCOMP=mpiifort + +##--------------------------------------------------------------------------- +elif [[ -d /scratch1 ]] ; then # We are on NOAA Hera if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 @@ -37,19 +53,6 @@ if [ $hname == 'h' ] ; then export myFC=mpiifort export FCOMP=mpiifort -##--------------------------------------------------------------------------- -elif [ $hname == 't' ] ; then - # We are on NOAA Theia - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - target=theia - module purge - module use /scratch3/NCEPDEV/nwprod/modulefiles/ - module use /scratch3/NCEPDEV/nwprod/lib/modulefiles -fi #scratch1 - ##--------------------------------------------------------------------------- elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh index a89c38a0f0..d0275edcb4 100755 --- a/ush/load_fv3gfs_modules.sh +++ b/ush/load_fv3gfs_modules.sh @@ -18,9 +18,10 @@ if [[ -d /lfs3 ]] ; then elif [[ -d /scratch1 ]] ; then # We are on NOAA Hera module load module_base.hera -elif [[ -d /scratch3 ]] ; then - # We are on NOAA Theia - module load module_base.theia +elif [[ -d /work ]] ; then + # We are on MSU Orion + module load module_base.orion + elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge module load module_base.wcoss_c diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 230f907dd7..4f6c5c2565 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -11,6 +11,7 @@ case: print_esmf: .true. nems_temp: 'med_atm_ocn_ice' nems_temp_cold: 'medcold_atm_ocn_ice' + mom6ic_prepared: .true. # cplflx: .false. nsst: diff --git a/workflow/cases/free_forecast_case.yaml b/workflow/cases/free_forecast_case.yaml index 8dc1c7b2cd..5f4f24c5bb 100644 --- a/workflow/cases/free_forecast_case.yaml +++ b/workflow/cases/free_forecast_case.yaml @@ -14,3 +14,5 @@ case: run_gsi: No chgres_and_convert_ics: Yes gfs_cyc: 4 # run gfs every cycle + + mom6ic_prepared: .true. diff --git a/workflow/defaults/settings.yaml b/workflow/defaults/settings.yaml index d01946f141..8fe93d1eed 100644 --- a/workflow/defaults/settings.yaml +++ b/workflow/defaults/settings.yaml @@ -45,6 +45,7 @@ default_settings: &default_settings cplflx: .false. cplice: !calc cplflx cpl: .false. + mom6ic_prepared: .false. # If set True, User need to manually copy mom6ic files into ROTIDR DOIAU: NO IAUFHRS: 6 diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index e205e6efaa..51b4413122 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -10,7 +10,7 @@ suite: !Cycle ics: !Family Disable: !calc >- - doc.settings.get("IC_CDUMP","") and not doc.settings.chgres_and_convert_ics + doc.settings.get("IC_CDUMP","") and not doc.settings.chgres_and_convert_ics or doc.settings.mom6ic_prepared=='.true.' # RUN: 'gfs' jgfs_emc_getics: !Task <<: *service_task_template diff --git a/workflow/platforms/orion.yaml b/workflow/platforms/orion.yaml new file mode 100644 index 0000000000..5d63f2d4bc --- /dev/null +++ b/workflow/platforms/orion.yaml @@ -0,0 +1,106 @@ +# This file configures the workflow to run on Theia + +platform: !Platform + <<: *global_platform_common + + # Evaluate: this must be "false" to ensure disk space availability logic + # is not run unless this file is for the current platform. + Evaluate: false + + # name: the name of this platform; this must match what the underlying + # scripts expect. + name: ORION + + # detect: this is a function that returns true iff the user is on GAEA + # and false otherwise + detect: !calc tools.isdir("/work") + + # Additional variables to send to Rocoto XML entities or ecflow edits. + metasched_more: !expand | + {metasched.defvar(doc.schedvar.exclusive_queue, doc.accounting.exclusive_partition.exclusive_queue)} + {metasched.defvar(doc.schedvar.shared_queue, doc.accounting.shared_partition.shared_queue)} + {metasched.defvar(doc.schedvar.service_queue, doc.accounting.service_partition.service_queue)} + {metasched.defvar(doc.schedvar.cpu_project, doc.accounting.cpu_project)} + + # DMPDIR - location of the global dump data. This is used by the observation + # processing scripts, which are not included in the public release. + DMPDIR: "/scratch1/NCEPDEV/global/glopara/dump" + NWPROD: "/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod" + RTMFIX: "/scratch1/NCEPDEV/global/glopara/crtm/2.2.3/fix_update/" + BASE_SVN: "/scratch1/NCEPDEV/global/glopara/svn" + + # BASE_GIT - a directory maintained by emc global model developers + # that contains recent versions of source code and executables for + # various git repositories. This is used on some platforms to find + # executables for this workflow. + BASE_GIT: "/scratch1/NCEPDEV/global/glopara/git/" + + config_base_extras: !expand | + echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" + + CHGRP_RSTPROD_COMMAND: "chgrp rstprod" + + partitions: + Evaluate: false + default_shared: !calc doc.platform.partitions.orion + default_exclusive: !calc doc.platform.partitions.orion + default_service: !calc doc.platform.partitions.orion + default_bigmem: !calc doc.platform.partitions.orion + orion: + <<: *global_partition_common + specification: orion + # Queues to use for each job type + shared_queue: batch + exclusive_queue: batch + service_queue: service + + # Details about the scheduler on this cluster. + scheduler_settings: + scheduler_name: Slurm + parallelism_name: HydraIMPI + node_type: generic + physical_cores_per_node: 40 + logical_cpus_per_core: 2 + hyperthreading_allowed: true + indent_text: " " + memory_per_node: !calc (96*1024) + + exclusive_accounting_ref: + queue: batch + project: !calc doc.accounting.cpu_project + partition: orion + + shared_accounting_ref: + queue: batch + project: !calc doc.accounting.cpu_project + partition: orion + + service_accounting_ref: + queue: service + project: !calc doc.accounting.cpu_project + partition: orion + + # Generate the actual Python objects for the scheduler, parallelism, + # and nodes: + scheduler: !calc | + tools.get_scheduler(scheduler_settings.scheduler_name, scheduler_settings) + parallelism: !calc | + tools.get_parallelism(scheduler_settings.parallelism_name, scheduler_settings) + nodes: !calc | + tools.node_tool_for(scheduler_settings.node_type, scheduler_settings) + + # long_term_temp - area for storage of data that must be passed + # between jobs or shared with programs external to this workflow. + COMROOT: !FirstTrue + - do: !expand "{doc.user_places.COMROOT}" + when: !calc doc.user_places.FIX_SCRUB + - otherwise: !expand "{doc.platform.least_used_temp}/{tools.env('USER')}" + + # short_term_temp - area for data that is only needed within one job: + DATAROOT: !FirstTrue + - do: !expand "{doc.user_places.DATAROOT}" + when: !calc doc.user_places.FIX_SCRUB + - otherwise: !expand "{doc.platform.least_used_temp}/{tools.env('USER')}" + + # EXPROOT - Parent directory of the expdir (experiment directory) + EXPROOT: !expand "{doc.user_places.EXPROOT}" From ed9296a28cef4f3e7f9404de8c6ebf5f2458ac4b Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 17 Apr 2020 15:52:08 -0500 Subject: [PATCH 23/91] remove HERA-like paths in platform.yaml of Orion --- workflow/platforms/orion.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/workflow/platforms/orion.yaml b/workflow/platforms/orion.yaml index 5d63f2d4bc..458f165078 100644 --- a/workflow/platforms/orion.yaml +++ b/workflow/platforms/orion.yaml @@ -24,16 +24,16 @@ platform: !Platform # DMPDIR - location of the global dump data. This is used by the observation # processing scripts, which are not included in the public release. - DMPDIR: "/scratch1/NCEPDEV/global/glopara/dump" - NWPROD: "/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod" - RTMFIX: "/scratch1/NCEPDEV/global/glopara/crtm/2.2.3/fix_update/" - BASE_SVN: "/scratch1/NCEPDEV/global/glopara/svn" + DMPDIR: "/work/noaa/marine/place_holder" + NWPROD: "/work/noaa/marine/place_holder" + RTMFIX: "/work/noaa/marine/place_holder" + BASE_SVN: "/work/noaa/marine/place_holder" # BASE_GIT - a directory maintained by emc global model developers # that contains recent versions of source code and executables for # various git repositories. This is used on some platforms to find # executables for this workflow. - BASE_GIT: "/scratch1/NCEPDEV/global/glopara/git/" + BASE_GIT: "/work/noaa/marine/place_holder" config_base_extras: !expand | echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" From a6661612db28cc13a7b7463700262224f8625b81 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 20 Apr 2020 10:20:34 -0500 Subject: [PATCH 24/91] checkout and External.cfg update --- Externals_coupled.cfg | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Externals_coupled.cfg diff --git a/Externals_coupled.cfg b/Externals_coupled.cfg new file mode 100644 index 0000000000..ceb5eedb36 --- /dev/null +++ b/Externals_coupled.cfg @@ -0,0 +1,13 @@ +[ufs-s2s-model] +tag = v3.1 +local_path = sorc/fv3_coupled.fd +repo_url = https://github.com/ufs-community/ufs-s2s-model +protocol = git +required = True + +[EMC_post] +hash = ba7e59b2 +local_path = sorc/gfs_post.fd +repo_url = https://github.com/NOAA-EMC/EMC_post.git +protocol = git +required = True From 27d70f4ab3f17c842ebeb508c84cb2dba9a9c405 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 20 Apr 2020 10:23:07 -0500 Subject: [PATCH 25/91] update checkout and External.cfg --- fix/0readme | 1 - fix/fix_am | 1 - fix/fix_chem | 1 - fix/fix_cice5 | 1 - fix/fix_fv3 | 1 - fix/fix_fv3_gmted2010 | 1 - fix/fix_fv3grid | 1 - fix/fix_gsi | 1 - fix/fix_gsi_MISSING | 1 - fix/fix_mom6 | 1 - fix/fix_ocnice | 1 - fix/fix_orog | 1 - fix/fix_verif | 1 - fix/gdas/gdas_minmon_cost.txt | 1 - fix/gdas/gdas_minmon_gnorm.txt | 1 - fix/gdas/gdas_oznmon_base.tar | 1 - fix/gdas/gdas_oznmon_satype.txt | 1 - fix/gdas/gdas_radmon_base.tar | 1 - fix/gdas/gdas_radmon_satype.txt | 1 - fix/gdas/gdas_radmon_scaninfo.txt | 1 - fix/wafs | 1 - sorc/checkout.sh | 106 +++++++++++++++++++----------- 22 files changed, 68 insertions(+), 59 deletions(-) delete mode 120000 fix/0readme delete mode 120000 fix/fix_am delete mode 120000 fix/fix_chem delete mode 120000 fix/fix_cice5 delete mode 120000 fix/fix_fv3 delete mode 120000 fix/fix_fv3_gmted2010 delete mode 120000 fix/fix_fv3grid delete mode 120000 fix/fix_gsi delete mode 120000 fix/fix_gsi_MISSING delete mode 120000 fix/fix_mom6 delete mode 120000 fix/fix_ocnice delete mode 120000 fix/fix_orog delete mode 120000 fix/fix_verif delete mode 120000 fix/gdas/gdas_minmon_cost.txt delete mode 120000 fix/gdas/gdas_minmon_gnorm.txt delete mode 120000 fix/gdas/gdas_oznmon_base.tar delete mode 120000 fix/gdas/gdas_oznmon_satype.txt delete mode 120000 fix/gdas/gdas_radmon_base.tar delete mode 120000 fix/gdas/gdas_radmon_satype.txt delete mode 120000 fix/gdas/gdas_radmon_scaninfo.txt delete mode 120000 fix/wafs diff --git a/fix/0readme b/fix/0readme deleted file mode 120000 index 6ac1fc67bf..0000000000 --- a/fix/0readme +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/0readme \ No newline at end of file diff --git a/fix/fix_am b/fix/fix_am deleted file mode 120000 index f2ebb85c6b..0000000000 --- a/fix/fix_am +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_am \ No newline at end of file diff --git a/fix/fix_chem b/fix/fix_chem deleted file mode 120000 index 2ebef63fe4..0000000000 --- a/fix/fix_chem +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_chem \ No newline at end of file diff --git a/fix/fix_cice5 b/fix/fix_cice5 deleted file mode 120000 index b5a3692992..0000000000 --- a/fix/fix_cice5 +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/nems/Bin.Li/S2S/fix_prep_benchmark3/fix_cice5 \ No newline at end of file diff --git a/fix/fix_fv3 b/fix/fix_fv3 deleted file mode 120000 index e2be208195..0000000000 --- a/fix/fix_fv3 +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_fv3 \ No newline at end of file diff --git a/fix/fix_fv3_gmted2010 b/fix/fix_fv3_gmted2010 deleted file mode 120000 index 8de839181d..0000000000 --- a/fix/fix_fv3_gmted2010 +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_fv3_gmted2010 \ No newline at end of file diff --git a/fix/fix_fv3grid b/fix/fix_fv3grid deleted file mode 120000 index 49c2f210b5..0000000000 --- a/fix/fix_fv3grid +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/nems/Bin.Li/S2S/fix_prep_benchmark3/fix_fv3grid \ No newline at end of file diff --git a/fix/fix_gsi b/fix/fix_gsi deleted file mode 120000 index a714fa3b91..0000000000 --- a/fix/fix_gsi +++ /dev/null @@ -1 +0,0 @@ -../sorc/gsi.fd/fix \ No newline at end of file diff --git a/fix/fix_gsi_MISSING b/fix/fix_gsi_MISSING deleted file mode 120000 index 9ac782d03d..0000000000 --- a/fix/fix_gsi_MISSING +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_gsi_MISSING \ No newline at end of file diff --git a/fix/fix_mom6 b/fix/fix_mom6 deleted file mode 120000 index f584b05c30..0000000000 --- a/fix/fix_mom6 +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/nems/Bin.Li/S2S/fix_prep_benchmark3/fix_mom6 \ No newline at end of file diff --git a/fix/fix_ocnice b/fix/fix_ocnice deleted file mode 120000 index b3f275fa05..0000000000 --- a/fix/fix_ocnice +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/nems/Bin.Li/S2S/fix_prep_benchmark3/fix_ocnice \ No newline at end of file diff --git a/fix/fix_orog b/fix/fix_orog deleted file mode 120000 index effdbc27a1..0000000000 --- a/fix/fix_orog +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_orog \ No newline at end of file diff --git a/fix/fix_verif b/fix/fix_verif deleted file mode 120000 index 4bfc1e5c3a..0000000000 --- a/fix/fix_verif +++ /dev/null @@ -1 +0,0 @@ -/scratch1/NCEPDEV/global/glopara/fix/fix_verif \ No newline at end of file diff --git a/fix/gdas/gdas_minmon_cost.txt b/fix/gdas/gdas_minmon_cost.txt deleted file mode 120000 index 40c584f930..0000000000 --- a/fix/gdas/gdas_minmon_cost.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/fix/gdas_minmon_cost.txt \ No newline at end of file diff --git a/fix/gdas/gdas_minmon_gnorm.txt b/fix/gdas/gdas_minmon_gnorm.txt deleted file mode 120000 index f0e97fe8b6..0000000000 --- a/fix/gdas/gdas_minmon_gnorm.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/fix/gdas_minmon_gnorm.txt \ No newline at end of file diff --git a/fix/gdas/gdas_oznmon_base.tar b/fix/gdas/gdas_oznmon_base.tar deleted file mode 120000 index 70b5f227f5..0000000000 --- a/fix/gdas/gdas_oznmon_base.tar +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_base.tar \ No newline at end of file diff --git a/fix/gdas/gdas_oznmon_satype.txt b/fix/gdas/gdas_oznmon_satype.txt deleted file mode 120000 index e920d6d00c..0000000000 --- a/fix/gdas/gdas_oznmon_satype.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_satype.txt \ No newline at end of file diff --git a/fix/gdas/gdas_radmon_base.tar b/fix/gdas/gdas_radmon_base.tar deleted file mode 120000 index bbed18bce0..0000000000 --- a/fix/gdas/gdas_radmon_base.tar +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_base.tar \ No newline at end of file diff --git a/fix/gdas/gdas_radmon_satype.txt b/fix/gdas/gdas_radmon_satype.txt deleted file mode 120000 index 6d924ac454..0000000000 --- a/fix/gdas/gdas_radmon_satype.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_satype.txt \ No newline at end of file diff --git a/fix/gdas/gdas_radmon_scaninfo.txt b/fix/gdas/gdas_radmon_scaninfo.txt deleted file mode 120000 index a345d79d0a..0000000000 --- a/fix/gdas/gdas_radmon_scaninfo.txt +++ /dev/null @@ -1 +0,0 @@ -../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_scaninfo.txt \ No newline at end of file diff --git a/fix/wafs b/fix/wafs deleted file mode 120000 index 1de774384a..0000000000 --- a/fix/wafs +++ /dev/null @@ -1 +0,0 @@ -../sorc/gfs_wafs.fd/fix/wafs \ No newline at end of file diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 5ec82dca46..aa246851ea 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -4,6 +4,27 @@ set -xue topdir=$(pwd) echo $topdir +if [ $# -eq 1 ]; then +model=$1 +fi +model=${model:-"uncoupled"} + +if [ $model = "coupled" ]; then +echo fv3_mom6_cice5 checkout ... +rm -f ${topdir}/checkout-fv3_coupled.log + +if [[ ! -d fv3_coupled.fd ]] ; then + git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 + cd fv3_coupled.fd + git checkout v3.1 + git submodule update --init --recursive + cd ${topdir} +else + echo 'Skip. Directory fv3_coupled.fd already exists.' +fi +fi + +if [ $model != "coupled" ]; then echo fv3gfs checkout ... if [[ ! -d fv3gfs.fd ]] ; then rm -f ${topdir}/checkout-fv3gfs.log @@ -15,18 +36,21 @@ if [[ ! -d fv3gfs.fd ]] ; then else echo 'Skip. Directory fv3gfs.fd already exists.' fi +fi -echo gsi checkout ... -if [[ ! -d gsi.fd ]] ; then - rm -f ${topdir}/checkout-gsi.log - git clone --recursive gerrit:ProdGSI gsi.fd >> ${topdir}/checkout-gsi.log 2>&1 - cd gsi.fd -# git checkout gfsda.v16.0.0 - git checkout feature/parallel_ncio - git submodule update - cd ${topdir} -else - echo 'Skip. Directory gsi.fd already exists.' +if [ $model != "coupled" ]; then + echo gsi checkout ... + if [[ ! -d gsi.fd ]] ; then + rm -f ${topdir}/checkout-gsi.log + git clone --recursive gerrit:ProdGSI gsi.fd >> ${topdir}/checkout-gsi.log 2>&1 + cd gsi.fd +# git checkout gfsda.v16.0.0 + git checkout feature/parallel_ncio + git submodule update + cd ${topdir} + else + echo 'Skip. Directory gsi.fd already exists.' + fi fi echo gldas checkout ... @@ -40,15 +64,17 @@ else echo 'Skip. Directory gldas.fd already exists.' fi -echo ufs_utils checkout ... -if [[ ! -d ufs_utils.fd ]] ; then - rm -f ${topdir}/checkout-ufs_utils.log - git clone https://github.com/NOAA-EMC/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 - cd ufs_utils.fd - git checkout release/ops-gfsv16 - cd ${topdir} -else - echo 'Skip. Directory ufs_utils.fd already exists.' +if [ $model != "coupled" ]; then + echo ufs_utils checkout ... + if [[ ! -d ufs_utils.fd ]] ; then + rm -f ${topdir}/checkout-ufs_utils.log + git clone https://github.com/NOAA-EMC/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 + cd ufs_utils.fd + git checkout release/ops-gfsv16 + cd ${topdir} + else + echo 'Skip. Directory ufs_utils.fd already exists.' + fi fi echo EMC_post checkout ... @@ -62,26 +88,30 @@ else echo 'Skip. Directory gfs_post.fd already exists.' fi -echo EMC_gfs_wafs checkout ... -if [[ ! -d gfs_wafs.fd ]] ; then - rm -f ${topdir}/checkout-gfs_wafs.log - git clone --recursive https://github.com/NOAA-EMC/EMC_gfs_wafs.git gfs_wafs.fd >> ${topdir}/checkout-gfs_wafs.log 2>&1 - cd gfs_wafs.fd - git checkout gfs_wafs.v5.0.11 - cd ${topdir} -else - echo 'Skip. Directory gfs_wafs.fd already exists.' +if [ $model != "coupled" ]; then + echo EMC_gfs_wafs checkout ... + if [[ ! -d gfs_wafs.fd ]] ; then + rm -f ${topdir}/checkout-gfs_wafs.log + git clone --recursive https://github.com/NOAA-EMC/EMC_gfs_wafs.git gfs_wafs.fd >> ${topdir}/checkout-gfs_wafs.log 2>&1 + cd gfs_wafs.fd + git checkout gfs_wafs.v5.0.11 + cd ${topdir} + else + echo 'Skip. Directory gfs_wafs.fd already exists.' + fi fi -echo EMC_verif-global checkout ... -if [[ ! -d verif-global.fd ]] ; then - rm -f ${topdir}/checkout-verif-global.log - git clone --recursive https://github.com/NOAA-EMC/EMC_verif-global.git verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1 - cd verif-global.fd - git checkout verif_global_v1.6.0 - cd ${topdir} -else - echo 'Skip. Directory verif-global.fd already exist.' +if [ $model != "coupled" ]; then + echo EMC_verif-global checkout ... + if [[ ! -d verif-global.fd ]] ; then + rm -f ${topdir}/checkout-verif-global.log + git clone --recursive https://github.com/NOAA-EMC/EMC_verif-global.git verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1 + cd verif-global.fd + git checkout verif_global_v1.6.0 + cd ${topdir} + else + echo 'Skip. Directory verif-global.fd already exist.' + fi fi exit 0 From 3f26563cff7748f2fabccdf9ce1351c149692eb9 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 22 Apr 2020 07:02:05 -0500 Subject: [PATCH 26/91] case file adjustment for Orion IC --- sorc/link_fv3gfs.sh | 10 +++++----- workflow/cases/coupled_free_forecast.yaml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 1599bbafb4..1ad8516870 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -15,18 +15,18 @@ fi if [ $# -lt 2 ]; then echo '***ERROR*** must specify two arguements: (1) RUN_ENVIR, (2) machine' - echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' exit 1 fi RUN_ENVIR=${1:-emc} if [ $RUN_ENVIR != emc -a $RUN_ENVIR != nco ]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )' + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' exit 1 fi -if [ $machine != cray -a $machine != theia -a $machine != dell -a $machine != hera ]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )' +if [ $machine != cray -a $machine != theia -a $machine != dell -a $machine != hera -a $machine != orion]; then + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' exit 1 fi @@ -55,7 +55,7 @@ elif [ $target == "hera" ]; then FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix" else echo 'CRITICAL: links to fix files not set' - exit 1 + [[ $machine != orion ]] && exit 1 fi cd ${pwd}/../fix ||exit 8 diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 4f6c5c2565..ced188823a 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -4,8 +4,8 @@ case: MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS settings: - SDATE: 2012-01-01t00:00:00 - EDATE: 2012-01-01t00:00:00 + SDATE: 2013-04-01t00:00:00 + EDATE: 2013-04-02t00:00:00 cplflx: .true. print_esmf: .true. From f843588270ade3f5bdebc5342a222951d1bc930f Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 22 May 2020 14:37:05 -0500 Subject: [PATCH 27/91] expand gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 0bad7abe7e..f5d599c449 100644 --- a/.gitignore +++ b/.gitignore @@ -162,3 +162,5 @@ util/sub_slurm util/sub_wcoss_c util/sub_wcoss_d workflow/user.yaml +sorc/checkout-gldas.fd.log +sorc/gldas.fd/ From cf36a46536f0782de70023dca1468173e71e3e86 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 27 May 2020 09:00:09 -0500 Subject: [PATCH 28/91] automate fix file linking, to this location: /work/noaa/marine/jmeixner/tempFixICdir/fix/fix_prep_benchmark3 --- .gitignore | 1 + sorc/link_fv3gfs.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index f5d599c449..717a433ded 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ __pycache__ exec/ +fix/ fix/0readme fix/fix_am fix/fix_chem diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 1ad8516870..a2177b5a55 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -53,6 +53,8 @@ elif [ $target == "jet" ]; then FIX_DIR="/lfs3/projects/hfv3gfs/glopara/git/fv3gfs/fix" elif [ $target == "hera" ]; then FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix" +elif [ $target == "orion" ]; then + FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix/fix_prep_benchmark3" else echo 'CRITICAL: links to fix files not set' [[ $machine != orion ]] && exit 1 From b6ec718555a5534b12ed91c75fcd0959477e332d Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Wed, 27 May 2020 18:36:44 +0000 Subject: [PATCH 29/91] updates to checkout, build and link to run prototype 4 --- sorc/build_fv3_coupled.sh | 6 +++--- sorc/checkout.sh | 2 +- sorc/link_fv3gfs.sh | 25 ++++++++++--------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/sorc/build_fv3_coupled.sh b/sorc/build_fv3_coupled.sh index 9471f45e00..9a2266688e 100755 --- a/sorc/build_fv3_coupled.sh +++ b/sorc/build_fv3_coupled.sh @@ -18,6 +18,6 @@ fi if [ $target = theia ]; then target=theia.intel ; fi -cd fv3_coupled.fd/ -./NEMS/NEMSAppBuilder rebuild app=coupledFV3_MOM6_CICE -mv ./NEMS/exe/NEMS.x ./NEMS/exe/nems_fv3_mom6_cice5.x +cd fv3_coupled.fd/NEMS +make -j 8 app=coupledFV3_CCPP_MOM6_CICE_WW3 build +mv ./exe/NEMS.x ./exe/nems_fv3_mom6_cice5.x diff --git a/sorc/checkout.sh b/sorc/checkout.sh index aa246851ea..818ff3c6d0 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -16,7 +16,7 @@ rm -f ${topdir}/checkout-fv3_coupled.log if [[ ! -d fv3_coupled.fd ]] ; then git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 cd fv3_coupled.fd - git checkout v3.1 + git checkout s2s_prototype4.0 git submodule update --init --recursive cd ${topdir} else diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index a2177b5a55..f8c10153e6 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -52,9 +52,9 @@ elif [ $target == "gaea" ]; then elif [ $target == "jet" ]; then FIX_DIR="/lfs3/projects/hfv3gfs/glopara/git/fv3gfs/fix" elif [ $target == "hera" ]; then - FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix" + FIX_DIR="/scratch2/NCEPDEV/climate/climpara/S2S/FIX/fix_UFSp4" elif [ $target == "orion" ]; then - FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix/fix_prep_benchmark3" + FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix_UFSp4" else echo 'CRITICAL: links to fix files not set' [[ $machine != orion ]] && exit 1 @@ -369,19 +369,14 @@ fi if [ $model = "coupled" ] ; then rm -f config.base cp -p config.base.emc.dyn_coupled config.base - if [ $machine = "theia" ] ; then - CPLFIX_DIR="/scratch4/NCEPDEV/nems/save/Bin.Li/fix_prep_benchmark2" - elif [ $machine = "hera" ] ; then - CPLFIX_DIR="/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/fix_prep_benchmark3" - fi -cd $pwd/../fix -# Add fixed files needed for coupled fv3-mom6-cice5 -#$LINK $CPLFIX_DIR/fix_fv3 . -#$LINK $CPLFIX_DIR/fix_fv3_gmted2010 . -$LINK $CPLFIX_DIR/fix_ocnice . -$LINK $CPLFIX_DIR/fix_cice5 . -$LINK $CPLFIX_DIR/fix_mom6 . -$LINK $CPLFIX_DIR/fix_fv3grid . + cd $pwd/../fix + # Add fixed files needed for coupled ufs-s2s-model + $LINK $FIX_DIR/fix_ocnice . + $LINK $FIX_DIR/fix_cice5 . + $LINK $FIX_DIR/fix_mom6 . + $LINK $FIX_DIR/fix_fv3grid . + $LINK $FIX_DIR/fix_cpl . + $LINK $FIX_DIR/fix_wav . fi exit 0 From 3d236857d496555ccbf75987bd2231e8a56882d3 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 27 May 2020 22:57:03 -0500 Subject: [PATCH 30/91] update UPP version to v1.0.8 --- sorc/checkout.sh | 2 +- workflow/defaults/default_resources.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sorc/checkout.sh b/sorc/checkout.sh index aa246851ea..30f7059702 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -82,7 +82,7 @@ if [[ ! -d gfs_post.fd ]] ; then rm -f ${topdir}/checkout-gfs_post.log git clone https://github.com/NOAA-EMC/EMC_post.git gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 cd gfs_post.fd - git checkout upp_gfsv16_release.v1.0.5 + git checkout upp_gfsv16_release.v1.0.8 cd ${topdir} else echo 'Skip. Directory gfs_post.fd already exists.' diff --git a/workflow/defaults/default_resources.yaml b/workflow/defaults/default_resources.yaml index d8ed402bfe..68712908fd 100644 --- a/workflow/defaults/default_resources.yaml +++ b/workflow/defaults/default_resources.yaml @@ -18,7 +18,7 @@ gfs_resource_table: !Select # ranks ppn wallclock threads MB_per_rank prep: [ 12, 12, !timedelta "00:15:00", null, null ] anal: [ 144, 6, !timedelta "01:30:00", max, null ] - gdaspost: [ 72, 12, !timedelta "00:30:00", 1, null ] + gdaspost: [ 72, 12, !timedelta "00:10:00", 1, null ] gfspost: [ 72, 12, !timedelta "00:10:00", 1, null ] gdasvrfy: [ 1, 1, !timedelta "03:00:00", null, null ] gfsvrfy: [ 5, 1, !timedelta "01:00:00", null, null ] @@ -35,8 +35,8 @@ gfs_resource_table: !Select # ranks ppn wallclock threads MB_per_rank prep: [ 12, 12, !timedelta "00:15:00", null, null ] anal: [ 144, 6, !timedelta "02:30:00", max, null ] - gdaspost: [ 72, 12, !timedelta "00:30:00", 1, null ] - gfspost: [ 72, 12, !timedelta "00:10:00", 1, null ] + gdaspost: [ 72, 12, !timedelta "00:20:00", 1, null ] + gfspost: [ 72, 12, !timedelta "00:20:00", 1, null ] gdasvrfy: [ 1, 1, !timedelta "03:00:00", null, null ] gfsvrfy: [ 5, 1, !timedelta "03:00:00", null, null ] gdasfcst_wall: !timedelta "00:15:00" @@ -50,7 +50,7 @@ gfs_resource_table: !Select # ranks ppn wallclock threads MB_per_rank prep: [ 4, 4, !timedelta "00:45:00", max, null ] anal: [ 360, 6, !timedelta "05:30:00", max, 7000 ] - gdaspost: [ 84, 12, !timedelta "00:45:00", null, 3770 ] + gdaspost: [ 84, 12, !timedelta "00:30:00", null, 3770 ] gfspost: [ 84, 12, !timedelta "00:30:00", null, 3770 ] gdasvrfy: [ 1, 1, !timedelta "03:00:00", null, null ] gfsvrfy: [ 5, null, !timedelta "06:00:00", null, null ] From cba56c477e6c140c364da4e5fe12cc121cec38d3 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 15:02:04 +0000 Subject: [PATCH 31/91] making Externals_coupled.cfg consistent with checkout.sh --- Externals_coupled.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_coupled.cfg b/Externals_coupled.cfg index ceb5eedb36..00045eb381 100644 --- a/Externals_coupled.cfg +++ b/Externals_coupled.cfg @@ -1,12 +1,12 @@ [ufs-s2s-model] -tag = v3.1 +tag = s2s_prototype4.0 local_path = sorc/fv3_coupled.fd repo_url = https://github.com/ufs-community/ufs-s2s-model protocol = git required = True [EMC_post] -hash = ba7e59b2 +tag = upp_gfsv16_release.v1.0.8 local_path = sorc/gfs_post.fd repo_url = https://github.com/NOAA-EMC/EMC_post.git protocol = git From 835747c6d0ba1018bf13b9fb83beb2645850b606 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 15:24:11 +0000 Subject: [PATCH 32/91] removing fix from .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 717a433ded..f5d599c449 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ __pycache__ exec/ -fix/ fix/0readme fix/fix_am fix/fix_chem From af11bb15904d65594da648a6158e6b552a26a99d Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 15:33:15 +0000 Subject: [PATCH 33/91] fixed error when linking on hera --- .gitignore | 1 + sorc/link_fv3gfs.sh | 13 +------------ 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index f5d599c449..7bf237f397 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ __pycache__ exec/ +fix fix/0readme fix/fix_am fix/fix_chem diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index f8c10153e6..3de519feb9 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -60,21 +60,10 @@ else [[ $machine != orion ]] && exit 1 fi -cd ${pwd}/../fix ||exit 8 -for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 fix_verif ; do - [[ -d $dir ]] && rm -rf $dir -done -$LINK $FIX_DIR/* . - -if [ ! -r $FIX_DIR ]; then - echo "CRITICAL: you do not of read permissions to the location of the fix file $FIX_DIR" - exit -1 -fi - if [ ! -z $FIX_DIR ]; then if [ ! -d ${pwd}/../fix ]; then mkdir ${pwd}/../fix; fi cd ${pwd}/../fix ||exit 8 - for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 ; do + for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 fix_verif ; do [[ -d $dir ]] && rm -rf $dir done $LINK $FIX_DIR/* . From a3fcc20bf49f16c68138dc6b6458b27b1710372c Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 17:44:52 +0000 Subject: [PATCH 34/91] replace MOM6IC with BASE_CPLIC for base directory location of IC for s2s model and made it platform dependent. (Orion location is temporary and needs to be replaced, can also be changed in cases/coupled_free_forecast.yaml to users prefered location) --- workflow/cases/coupled_free_forecast.yaml | 2 +- workflow/config/fv3ic.yaml | 2 +- workflow/defaults/places.yaml | 2 +- workflow/platforms/_sandbox.yaml | 3 + workflow/platforms/gaea.yaml | 3 + workflow/platforms/hera.yaml | 3 + workflow/platforms/jet.yaml | 3 + workflow/platforms/orion.yaml | 3 + workflow/platforms/theia.yaml | 176 ---------------------- workflow/platforms/wcoss_cray.yaml | 3 + workflow/platforms/wcoss_dell_p3.yaml | 3 + workflow/schema/places.yaml | 2 + 12 files changed, 26 insertions(+), 179 deletions(-) delete mode 100644 workflow/platforms/theia.yaml diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index ced188823a..3733984956 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -1,7 +1,7 @@ case: places: workflow_file: layout/free_forecast_gfs.yaml - MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS + #BASE_CPLIC: /scratch2/NCEPDEV/climate/climpara/S2S/IC settings: SDATE: 2013-04-01t00:00:00 diff --git a/workflow/config/fv3ic.yaml b/workflow/config/fv3ic.yaml index f1d967e65c..72c8dd6bfd 100644 --- a/workflow/config/fv3ic.yaml +++ b/workflow/config/fv3ic.yaml @@ -20,7 +20,7 @@ config_fv3ic: export npe_fv3ic={doc.partition_common.resources.run_fv3ic[0].mpi_ranks} export npe_node_fv3ic={doc.partition_common.resources.run_fv3ic[0].mpi_ranks} - export ORIGIN_ROOT="{doc.places.MOM6IC}" + export ORIGIN_ROOT="{doc.places.BASE_CPLIC}" echo "END: config.fv3ic" diff --git a/workflow/defaults/places.yaml b/workflow/defaults/places.yaml index 24c40ddb15..2bc612dcf4 100644 --- a/workflow/defaults/places.yaml +++ b/workflow/defaults/places.yaml @@ -14,7 +14,7 @@ default_places: &default_places EXPDIR: !expand "{doc.platform.EXPROOT}/{doc.names.experiment}" ROTDIR: !expand "{doc.platform.COMROOT}/{doc.names.experiment}" ICSDIR: !expand "{ROTDIR}/FV3ICS" - MOM6IC: /scratch4/NCEPDEV/nems/noscrub/Bin.Li/FROM_HPSS + BASE_CPLIC: !calc doc.platform.BASE_CPLIC DATAROOT: !expand "{doc.platform.DATAROOT}/{doc.names.experiment}" # SHORT_TERM_TEMP: !calc doc.platform.short_term_temp # LONG_TERM_TEMP: !calc doc.platform.long_term_temp diff --git a/workflow/platforms/_sandbox.yaml b/workflow/platforms/_sandbox.yaml index 11a2b43826..a0c65372b6 100644 --- a/workflow/platforms/_sandbox.yaml +++ b/workflow/platforms/_sandbox.yaml @@ -57,6 +57,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/gpfs/hps3/emc/global/noscrub/emc.glopara/git" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/path/to/base/dir/of/IC" + # config_base_extras - Additional configuration data to put in the # config.base file config_base_extras: "sandbox" diff --git a/workflow/platforms/gaea.yaml b/workflow/platforms/gaea.yaml index d3ad81f0b1..9e23ba6807 100644 --- a/workflow/platforms/gaea.yaml +++ b/workflow/platforms/gaea.yaml @@ -51,6 +51,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/dev/null/global/save/glopara/git" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/path/to/base/dir/of/IC" + # rocoto_platform_vars - additional variables sent to the rocoto xml # file for each job to set platform-specific batch card settings. rocoto_platform_vars: | diff --git a/workflow/platforms/hera.yaml b/workflow/platforms/hera.yaml index b5e8c8c3cf..ae83b5ea4f 100644 --- a/workflow/platforms/hera.yaml +++ b/workflow/platforms/hera.yaml @@ -35,6 +35,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/scratch1/NCEPDEV/global/glopara/git/" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/scratch2/NCEPDEV/climate/climpara/S2S/IC" + config_base_extras: !expand | echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" diff --git a/workflow/platforms/jet.yaml b/workflow/platforms/jet.yaml index 04c524ccb7..33ac41b1da 100644 --- a/workflow/platforms/jet.yaml +++ b/workflow/platforms/jet.yaml @@ -51,6 +51,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/mnt/lfs3/projects/hfv3gfs/glopara/git" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/path/to/base/dir/of/IC" + # config_base_extras - Additional configuration data to put in the # config.base file config_base_extras: | diff --git a/workflow/platforms/orion.yaml b/workflow/platforms/orion.yaml index 458f165078..a339cec5c5 100644 --- a/workflow/platforms/orion.yaml +++ b/workflow/platforms/orion.yaml @@ -35,6 +35,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/work/noaa/marine/place_holder" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/work/noaa/marine/jmeixner/tempFixICdir/IC" + config_base_extras: !expand | echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" diff --git a/workflow/platforms/theia.yaml b/workflow/platforms/theia.yaml deleted file mode 100644 index 485bb26d30..0000000000 --- a/workflow/platforms/theia.yaml +++ /dev/null @@ -1,176 +0,0 @@ -# This file configures the workflow to run on Theia - -platform: !Platform - <<: *global_platform_common - - # Evaluate: this must be "false" to ensure disk space availability logic - # is not run unless this file is for the current platform. - Evaluate: false - - # name: the name of this platform; this must match what the underlying - # scripts expect. - name: THEIA - - # detect: this is a function that returns true iff the user is on GAEA - # and false otherwise - detect: !calc tools.isdir("/scratch4") and tools.isdir("/scratch3") - - # public_release_ics: location of input conditions that have been - # prepared for the public release. - public_release_ics: /scratch4/NCEPDEV/global/noscrub/glopara/FV3GFS_V1_RELEASE/ICs - - # CHGRP_RSTPROD_COMMAND - this specifies the command to use to - # restrict access to NOAA "rstprod" data restriction class. - # This only used for observation processing, data assimilation, and - # data assimilation archiving, which are not in the public release. - CHGRP_RSTPROD_COMMAND: "chgrp rstprod" - - # NWPROD - location of the NCEP operational "nwprod" directory, which - # only has meaning on the NCEP WCOSS machines. It is used to get - # the paths to certain programs and scripts. - NWPROD: "/scratch4/NCEPDEV/global/save/glopara/nwpara" - - # DMPDIR - location of the global dump data. This is used by the observation - # processing scripts, which are not included in the public release. - DMPDIR: "/scratch4/NCEPDEV/global/noscrub/dump" - - # RTMFIX - location of the CRTM fixed data files used by the GSI data - # assimilation. The data assimilation is not included in this public release - # so this path is unused. - RTMFIX: "/scratch4/NCEPDEV/da/save/Michael.Lueken/nwprod/lib/crtm/2.2.3/fix_update" - - # BASE_SVN - a directory maintained by emc global model developers - # that contains recent versions of source code and executables for - # various repositories. This is used on some platforms to find - # executables for this workflow. - BASE_SVN: "/scratch4/NCEPDEV/global/save/glopara/svn" - - # BASE_GIT - a directory maintained by emc global model developers - # that contains recent versions of source code and executables for - # various git repositories. This is used on some platforms to find - # executables for this workflow. - BASE_GIT: "/scratch4/NCEPDEV/global/save/glopara/git" - - # config_base_extras - Additional configuration data to put in the - # config.base file. On Theia, we use this to specify the location - # of some programs. - config_base_extras: !expand | - export NDATE="$NWPROD/util/exec/ndate" - export NHOUR="$NWPROD/util/exec/nhour" - export WGRIB="$NWPROD/util/exec/wgrib" - export WGRIB2="/scratch3/NCEPDEV/nwprod/utils/wgrib2.v2.0.6c/wgrib2/wgrib2" - export COPYGB="$NWPROD/util/exec/copygb" - export COPYGB2="$NWPROD/util/exec/copygb2" - export GRBINDEX="$NWPROD/util/exec/grbindex" - export GRB2INDEX="$NWPROD/util/exec/grb2index" - export GRBINDEX2="$NWPROD/util/exec/grb2index" - export CNVGRIB="/apps/cnvgrib/1.4.0/bin/cnvgrib" - export CNVGRIB21_GFS="/apps/cnvgrib/1.4.0/bin/cnvgrib" - export POSTGRB2TBL="/scratch3/NCEPDEV/nwprod/lib/sorc/g2tmpl/params_grib2_tbl_new" - - # Additional variables to send to Rocoto XML entities or ecflow edits. - metasched_more: !expand | - {metasched.defvar(doc.schedvar.exclusive_queue, doc.accounting.exclusive_partition.exclusive_queue)} - {metasched.defvar(doc.schedvar.shared_queue, doc.accounting.shared_partition.shared_queue)} - {metasched.defvar(doc.schedvar.service_queue, doc.accounting.service_partition.service_queue)} - {metasched.defvar(doc.schedvar.cpu_project, doc.accounting.cpu_project)} - - partitions: - Evaluate: false - default_shared: !calc doc.platform.partitions.theia - default_exclusive: !calc doc.platform.partitions.theia - default_service: !calc doc.platform.partitions.theia_service - theia: - <<: *global_partition_common - specification: theia - # Queues to use for each job type - shared_queue: theia - exclusive_queue: theia - - # Details about the scheduler on this cluster. - scheduler_settings: - scheduler_name: Slurm - parallelism_name: HydraIMPI - node_type: generic - physical_cores_per_node: 24 - logical_cpus_per_core: 2 - hyperthreading_allowed: true - indent_text: " " - memory_per_node: !calc (64*1024) - - exclusive_accounting_ref: - queue: batch - project: !calc doc.accounting.cpu_project - partition: theia - - shared_accounting_ref: - queue: batch - project: !calc doc.accounting.cpu_project - partition: theia - - # Generate the actual Python objects for the scheduler, parallelism, - # and nodes: - scheduler: !calc | - tools.get_scheduler(scheduler_settings.scheduler_name, scheduler_settings) - parallelism: !calc | - tools.get_parallelism(scheduler_settings.parallelism_name, scheduler_settings) - nodes: !calc | - tools.node_tool_for(scheduler_settings.node_type, scheduler_settings) - - theia_service: - <<: *global_partition_common - specification: service - service_queue: service - scheduler_settings: - scheduler_name: Slurm - parallelism_name: HydraIMPI - node_type: generic - physical_cores_per_node: 1 - logical_cpus_per_core: 1 - hyperthreading_allowed: false - indent_text: " " - memory_per_node: !calc (64*1024) - - service_accounting_ref: - queue: batch - project: !calc doc.accounting.cpu_project - partition: service - - scheduler: !calc | - tools.get_scheduler(scheduler_settings.scheduler_name, scheduler_settings) - parallelism: !calc | - tools.get_parallelism(scheduler_settings.parallelism_name, scheduler_settings) - nodes: !calc | - tools.node_tool_for(scheduler_settings.node_type, scheduler_settings) - - - # Path to pan_df, the program used to get Panasas disk usage information: - pan_df: pan_df - - # Automatically detect the least used scrub area the user can access: - least_used_temp: !Immediate - - !FirstTrue - - do: !expand "{doc.user_places.DATAROOT}" - when: !calc doc.user_places.FIX_SCRUB - - otherwise: !FirstMax - - do: /scratch3/NCEPDEV/stmp1 - when: !calc ( int(tools.can_write(do)) and tools.panasas_gb(do) ) - - do: /scratch3/NCEPDEV/stmp2 - when: !calc ( int(tools.can_write(do)) and tools.panasas_gb(do) ) - - do: /scratch4/NCEPDEV/stmp3 - when: !calc ( int(tools.can_write(do)) and tools.panasas_gb(do) ) - - do: /scratch4/NCEPDEV/stmp4 - when: !calc ( int(tools.can_write(do)) and tools.panasas_gb(do) ) - - do: !expand "{doc.user_places.EXPROOT}" - when: !calc tools.panasas_gb(do)/4 - message: "{do}: use project directory as scrub space" - - # long_term_temp - area for storage of data that must be passed - # between jobs or shared with programs external to this workflow. - long_term_temp: !expand "{doc.platform.least_used_temp}/{tools.env('USER')}" - - # short_term_temp - area for data that is only needed within one job: - short_term_temp: !expand "{doc.platform.least_used_temp}/{tools.env('USER')}" - - # EXPROOT - Parent directory of the expdir (experiment directory) - EXPROOT: !expand "{doc.user_places.EXPROOT}" diff --git a/workflow/platforms/wcoss_cray.yaml b/workflow/platforms/wcoss_cray.yaml index b68439eecd..0b36987d1f 100644 --- a/workflow/platforms/wcoss_cray.yaml +++ b/workflow/platforms/wcoss_cray.yaml @@ -57,6 +57,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/gpfs/hps3/emc/global/noscrub/emc.glopara/git" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/path/to/base/dir/of/IC" + # config_base_extras - Additional configuration data to put in the # config.base file config_base_extras: | diff --git a/workflow/platforms/wcoss_dell_p3.yaml b/workflow/platforms/wcoss_dell_p3.yaml index d1a459a6b5..840b042933 100644 --- a/workflow/platforms/wcoss_dell_p3.yaml +++ b/workflow/platforms/wcoss_dell_p3.yaml @@ -57,6 +57,9 @@ platform: !Platform # executables for this workflow. BASE_GIT: "/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" + #BASE_CPLIC - is the base directory of ICs for coupled s2s runs + BASE_CPLIC: "/path/to/base/dir/of/IC" + # config_base_extras - Additional configuration data to put in the # config.base file config_base_extras: | diff --git a/workflow/schema/places.yaml b/workflow/schema/places.yaml index 23ed39f515..a19ba9ade3 100644 --- a/workflow/schema/places.yaml +++ b/workflow/schema/places.yaml @@ -44,6 +44,8 @@ places_schema: &places_schema !Template type: string BASE_GIT: type: string + BASE_CPLIC: + type: string ics_from: type: string From 0078c4957bfa6e3b4470daafd9074719d8458f37 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 18:28:15 +0000 Subject: [PATCH 35/91] updates for copying ICs --- jobs/rocoto/coupled_ic.sh | 29 ++++++++++++++++++++++++----- ush/forecast_postdet.sh | 24 +++++++++++++++--------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index ad7949e06c..7e2bd36ffe 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -33,15 +33,34 @@ done status=$? [[ $status -ne 0 ]] && exit $status + +#TODO: make the following configurable variables instead of hardcoded +CPL_ATMIC=CFSR +CPL_OCNIC=CPC3Dvar +CPL_ICEIC=CPC +OCNRES=025 +ICERES=025 + # Create ICSDIR if needed [[ ! -d $ICSDIR/$CDATE ]] && mkdir -p $ICSDIR/$CDATE +[[ ! -d $ICSDIR/$CDATE/ocn ]] && mkdir -p $ICSDIR/$CDATE/ocn +[[ ! -d $ICSDIR/$CDATE/ice ]] && mkdir -p $ICSDIR/$CDATE/ice + + +# Setup ATM initial condition files +cp -r $ORIGIN_ROOT/$CPL_ATMIC/$CDATE/$CDUMP $ICSDIR/$CDATE/ + +# Setup Ocean IC files +cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/* $ICSDIR/$CDATE/ocn/ + +#Setup Ice IC files +cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/* $ICSDIR/$CDATE/ice/ -# Output FV3 initial condition files +#TODO for wave coupling +#if cplwav=true + #Setup Wave IC files +#fi -cp $ORIGIN_ROOT/$CDATE/cice5_* $ICSDIR/$CDATE/ -cp $ORIGIN_ROOT/$CDATE/MOM6_* $ICSDIR/$CDATE/ -cp -r $ORIGIN_ROOT/$CDATE/mom6_da $ICSDIR/$CDATE/ -cp -r $ORIGIN_ROOT/$CDATE/gfs $ICSDIR/$CDATE/ export OUTDIR="$ICSDIR/$CDATE/$CDUMP/$CASE/INPUT" diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 6e2dc8521c..978316a12a 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -511,8 +511,8 @@ MOM6_postdet() { echo "SUB ${FUNCNAME[0]}: MOM6 after run type determination" - # Copy MOM6 ICs (from CFSv2 file) - cp -pf $ICSDIR/$CDATE/mom6_da/MOM*nc $DATA/INPUT/ + # Copy MOM6 ICs + cp -pf $ICSDIR/$CDATE/ocn/MOM*nc $DATA/INPUT/ # Copy MOM6 fixed files cp -pf $FIXmom/INPUT/* $DATA/INPUT/ @@ -649,16 +649,22 @@ CICE_postdet() dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" - iceres=${iceres:-"mx025"} - ice_grid_file=${ice_grid_file:-"grid_cice_NEMS_${iceres}.nc"} - ice_kmt_file=${ice_kmt_file:-"kmtu_cice_NEMS_${iceres}.nc"} + ICERES=${ICERES:-"025"} + if [ $ICERES = '025' ]; then + ICERESmx="mx025" + ICERESdec="0.25" + else if [ $ICERES = '050' ]; then + ICERESmx="mx050" + ICERESdec="0.50" + fi + + ice_grid_file=${ice_grid_file:-"grid_cice_NEMS_${ICERESmx}.nc"} + ice_kmt_file=${ice_kmt_file:-"kmtu_cice_NEMS_${ICERESmx}.nc"} - #TODO iceic name... this might need to be update? iceic="cice5_model.res_$CDATE.nc" - # Copy CICE5 IC - pre-generated from CFSv2 - cp -p $ICSDIR/$CDATE/cice5_model_0.25.res_$CDATE.nc $DATA/$iceic - #cp -p $ICSDIR/$CDATE/cpc/cice5_model_0.25.res_$CDATE.nc ./cice5_model.res_$CDATE.nc + # Copy CICE5 IC + cp -p $ICSDIR/$CDATE/ice/cice5_model_${ICERESdec}.res_$CDATE.nc $DATA/$iceic echo "Link CICE fixed files" ln -sf $FIXcice/${ice_grid_file} $DATA/ From 84ab8c87e88a81b2af3bc8de382169986186ecda Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 18:28:53 +0000 Subject: [PATCH 36/91] more updates for ICs --- jobs/rocoto/coupled_ic.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index 7e2bd36ffe..fa7b18a03c 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -40,21 +40,27 @@ CPL_OCNIC=CPC3Dvar CPL_ICEIC=CPC OCNRES=025 ICERES=025 +ICERES=${ICERES:-"025"} # Create ICSDIR if needed [[ ! -d $ICSDIR/$CDATE ]] && mkdir -p $ICSDIR/$CDATE [[ ! -d $ICSDIR/$CDATE/ocn ]] && mkdir -p $ICSDIR/$CDATE/ocn [[ ! -d $ICSDIR/$CDATE/ice ]] && mkdir -p $ICSDIR/$CDATE/ice +if [ $ICERES = '025' ]; then + ICERESdec="0.25" +else if [ $ICERES = '050' ]; then + ICERESdec="0.50" +fi # Setup ATM initial condition files cp -r $ORIGIN_ROOT/$CPL_ATMIC/$CDATE/$CDUMP $ICSDIR/$CDATE/ # Setup Ocean IC files -cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/* $ICSDIR/$CDATE/ocn/ +cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/MOM*.nc $ICSDIR/$CDATE/ocn/ #Setup Ice IC files -cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/* $ICSDIR/$CDATE/ice/ +cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/cice5_model_${ICERESdec}.res_$CDATE.nc $ICSDIR/$CDATE/ice/ #TODO for wave coupling #if cplwav=true From 89cf3627a526fd9f17295e8f00676503255a7a2e Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 19:26:02 +0000 Subject: [PATCH 37/91] updates for new fix (which includes prep for multiple resolutions) and some clean-up --- jobs/rocoto/coupled_ic.sh | 3 +- parm/mom6/MOM_input_025 | 889 +++++++++++++++++++++++++++++++++++ parm/mom6/MOM_input_025_wav | 912 ++++++++++++++++++++++++++++++++++++ ush/forecast_postdet.sh | 122 +++-- 4 files changed, 1861 insertions(+), 65 deletions(-) create mode 100644 parm/mom6/MOM_input_025 create mode 100644 parm/mom6/MOM_input_025_wav diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index fa7b18a03c..045171f807 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -49,7 +49,8 @@ ICERES=${ICERES:-"025"} if [ $ICERES = '025' ]; then ICERESdec="0.25" -else if [ $ICERES = '050' ]; then +fi +if [ $ICERES = '050' ]; then ICERESdec="0.50" fi diff --git a/parm/mom6/MOM_input_025 b/parm/mom6/MOM_input_025 new file mode 100644 index 0000000000..56ca33fc70 --- /dev/null +++ b/parm/mom6/MOM_input_025 @@ -0,0 +1,889 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in OM4_025. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +! === module MOM === +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interface heights are diffused with a + ! coefficient of KHTH. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +DT = 900.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 1800.0 ! [s] default = 900.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step, unless + ! THERMO_SPANS_COUPLING is true, in which case DT_THERM + ! can be an integer multiple of the coupling timestep. By + ! default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = True ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer + ! timesteps that can be longer than the coupling timestep. + ! The actual thermodynamic timestep that is used in this + ! case is the largest integer multiple of the coupling + ! timestep that is less than or equal to DT_THERM. +HFREEZE = 20.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth + ! over which melt potential is computed will be min(HFREEZE, OBLD) + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) + ! melt potential will not be computed. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3992.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +BAD_VAL_SSH_MAX = 50.0 ! [m] default = 20.0 + ! The value of SSH above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SSS_MAX = 75.0 ! [PPT] default = 45.0 + ! The value of SSS above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MAX = 65.0 ! [deg C] default = 45.0, PTripp: changed from 55.0 on 12/28/2017 + ! The value of SST above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MIN = -3.0 ! [deg C] default = -2.1 + ! The value of SST below which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +WRITE_GEOM = 2 ! default = 1 + ! If =0, never write the geometry and vertical grid files. + ! If =1, write the geometry and vertical grid files only for + ! a new simulation. If =2, always write the geometry and + ! vertical grid files. Other values are invalid. + +! === module MOM_domains === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 1440 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 1080 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! Neverland - use the Neverland test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! shelfwave - exponential slope for shelfwave test case. + ! supercritical - flat but with 8.95 degree land mask. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_EDITS_FILE = "All_edits.nc" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +MAXIMUM_DEPTH = 6500.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but deeper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True + ! If true, use an older algorithm to calculate the sine and + ! cosines needed rotate between grid-oriented directions and + ! true north and east. Differences arise at the tripolar fold +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True + ! If true, use older code that incorrectly sets the longitude + ! in some points along the tripolar fold to be off by 360 degrees + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any. +MASKING_DEPTH = 0.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +CHANNEL_CONFIG = "list" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" + ! The file from which the list of narrowed channels is read. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +DTFREEZE_DP = -7.75E-08 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = True ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. + +! === module ideal_age_example === + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "layer_coord.nc" ! + ! The file from which the coordinate densities are read. +REGRIDDING_COORDINATE_MODE = "HYCOM1" ! default = "LAYER" + ! Coordinate mode for vertical regridding. + ! Choose among the following possibilities: + ! LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stetched geopotential z* + ! SIGMA_SHELF_ZSTAR - stetched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +BOUNDARY_EXTRAPOLATION = True ! [Boolean] default = False + ! When defined, a proper high-order reconstruction + ! scheme is used within boundary cells rather + ! than PCM. E.g., if PPM is used for remapping, a + ! PPM reconstruction will also be used within + ! boundary cells. +ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! default = "UNIFORM" + ! Determines how to specify the coordinate + ! resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 7*2.0, 2*2.01, 2.02, 2.03, 2.05, 2.08, 2.11, 2.15, 2.21, 2.2800000000000002, 2.37, 2.48, 2.61, 2.77, 2.95, 3.17, 3.4299999999999997, 3.74, 4.09, 4.49, 4.95, 5.48, 6.07, 6.74, 7.5, 8.34, 9.280000000000001, 10.33, 11.49, 12.77, 14.19, 15.74, 17.450000000000003, 19.31, 21.35, 23.56, 25.97, 28.580000000000002, 31.41, 34.47, 37.77, 41.32, 45.14, 49.25, 53.65, 58.370000000000005, 63.42, 68.81, 74.56, 80.68, 87.21000000000001, 94.14, 101.51, 109.33, 117.62, 126.4, 135.68, 145.5, 155.87, 166.81, 178.35, 190.51, 203.31, 216.78, 230.93, 245.8, 261.42, 277.83 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +!TARGET_DENSITIES = 1010.0, 1014.3034, 1017.8088, 1020.843, 1023.5566, 1025.813, 1027.0275, 1027.9114, 1028.6422, 1029.2795, 1029.852, 1030.3762, 1030.8626, 1031.3183, 1031.7486, 1032.1572, 1032.5471, 1032.9207, 1033.2798, 1033.6261, 1033.9608, 1034.2519, 1034.4817, 1034.6774, 1034.8508, 1035.0082, 1035.1533, 1035.2886, 1035.4159, 1035.5364, 1035.6511, 1035.7608, 1035.8661, 1035.9675, 1036.0645, 1036.1554, 1036.2411, 1036.3223, 1036.3998, 1036.4739, 1036.5451, 1036.6137, 1036.68, 1036.7441, 1036.8062, 1036.8526, 1036.8874, 1036.9164, 1036.9418, 1036.9647, 1036.9857, 1037.0052, 1037.0236, 1037.0409, 1037.0574, 1037.0738, 1037.0902, 1037.1066, 1037.123, 1037.1394, 1037.1558, 1037.1722, 1037.1887, 1037.206, 1037.2241, 1037.2435, 1037.2642, 1037.2866, 1037.3112, 1037.3389, 1037.3713, 1037.4118, 1037.475, 1037.6332, 1037.8104, 1038.0 ! [m] + ! HYBRID target densities for itnerfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [not defined] default = 0.0 + ! When interpolating potential density profiles we can add + ! some artificial compressibility solely to make homogenous + ! regions appear stratified. +MAXIMUM_INT_DEPTH_CONFIG = "FNC1:5,8000.0,1.0,.01" ! default = "NONE" + ! Determines how to specify the maximum interface depths. + ! Valid options are: + ! NONE - there are no maximum interface depths + ! PARAM - use the vector-parameter MAXIMUM_INTERFACE_DEPTHS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAXIMUM_INT_DEPTHS = 0.0, 5.0, 12.75, 23.25, 36.49, 52.480000000000004, 71.22, 92.71000000000001, 116.94000000000001, 143.92000000000002, 173.65, 206.13, 241.36, 279.33000000000004, 320.05000000000007, 363.5200000000001, 409.7400000000001, 458.7000000000001, 510.4100000000001, 564.8700000000001, 622.0800000000002, 682.0300000000002, 744.7300000000002, 810.1800000000003, 878.3800000000003, 949.3300000000004, 1023.0200000000004, 1099.4600000000005, 1178.6500000000005, 1260.5900000000006, 1345.2700000000007, 1432.7000000000007, 1522.8800000000008, 1615.8100000000009, 1711.490000000001, 1809.910000000001, 1911.080000000001, 2015.0000000000011, 2121.670000000001, 2231.080000000001, 2343.2400000000007, 2458.1500000000005, 2575.8100000000004, 2696.2200000000003, 2819.3700000000003, 2945.2700000000004, 3073.9200000000005, 3205.3200000000006, 3339.4600000000005, 3476.3500000000004, 3615.9900000000002, 3758.38, 3903.52, 4051.4, 4202.03, 4355.41, 4511.54, 4670.41, 4832.03, 4996.4, 5163.5199999999995, 5333.379999999999, 5505.989999999999, 5681.3499999999985, 5859.459999999998, 6040.319999999998, 6223.919999999998, 6410.269999999999, 6599.369999999999, 6791.219999999999, 6985.8099999999995, 7183.15, 7383.24, 7586.08, 7791.67, 8000.0 + ! The list of maximum depths for each interface. +MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! default = "NONE" + ! Determines how to specify the maximum layer thicknesses. + ! Valid options are: + ! NONE - there are no maximum layer thicknesses + ! PARAM - use the vector-parameter MAX_LAYER_THICKNESS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAX_LAYER_THICKNESS = 400.0, 409.63, 410.32, 410.75, 411.07, 411.32, 411.52, 411.7, 411.86, 412.0, 412.13, 412.24, 412.35, 412.45, 412.54, 412.63, 412.71, 412.79, 412.86, 412.93, 413.0, 413.06, 413.12, 413.18, 413.24, 413.29, 413.34, 413.39, 413.44, 413.49, 413.54, 413.58, 413.62, 413.67, 413.71, 413.75, 413.78, 413.82, 413.86, 413.9, 413.93, 413.97, 414.0, 414.03, 414.06, 414.1, 414.13, 414.16, 414.19, 414.22, 414.24, 414.27, 414.3, 414.33, 414.35, 414.38, 414.41, 414.43, 414.46, 414.48, 414.51, 414.53, 414.55, 414.58, 414.6, 414.62, 414.65, 414.67, 414.69, 414.71, 414.73, 414.75, 414.77, 414.79, 414.83 ! [m] + ! The list of maximum thickness for each layer. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used + ! for vertical remapping for all variables. + ! It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) + +! === module MOM_grid === +! Parameters providing information about the lateral grid. + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. + +! === module MOM_initialize_layers_from_Z === +!TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" + ! The name of the z-space input file used to initialize + ! temperatures (T) and salinities (S). If T and S are not + ! in the same file, TEMP_Z_INIT_FILE and SALT_Z_INIT_FILE + ! must be set. +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" + ! The name of the salinity variable in + ! SALT_Z_INIT_FILE. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +!Jiande NUM_DIAG_COORDS = 2 ! default = 1 +NUM_DIAG_COORDS = 1 + ! The number of diagnostic vertical coordinates to use. + ! For each coordinate, an entry in DIAG_COORDS must be provided. +!Jiande DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" ! +DIAG_COORDS = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to + ! a coordinate definition used for diagnostics. Each string + ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" +DIAG_MISVAL = -1e34 +!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09" + ! Determines how to specify the coordinate + ! resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz + +! === module MOM_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates + ! a sub-grid mesoscale eddy kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Rhines scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. +MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Eady length scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and + ! stored for re-use. This uses more memory but avoids calling + ! the equation of state more times than should be necessary. +INTERPOLATE_RES_FN = False ! [Boolean] default = True + ! If true, interpolate the resolution function to the + ! velocity points from the thickness points; otherwise + ! interpolate the wave speed and calculate the resolution + ! function independently at each point. +GILL_EQUATORIAL_LD = True ! [Boolean] default = False + ! If true, uses Gill's definition of the baroclinic + ! equatorial deformation radius, otherwise, if false, use + ! Pedlosky's definition. These definitions differ by a factor + ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +PRANDTL_TURB = 1.25 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear + ! instability. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = True ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 0.001 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. + +! === module MOM_CoriolisAdv === +CORIOLIS_SCHEME = "SADOURNY75_ENSTRO" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option would + ! have no effect on the SADOURNY Coriolis scheme if it + ! were possible to use centered difference thickness fluxes. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_AFV === +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +AH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the biharmonic viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HMIX_FIXED = 0.5 ! [m] + ! The prescribed depth over which the near-surface + ! viscosity and diffusivity are elevated when the bulk + ! mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than maxCFL_BT_cont to be accommodated. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = True ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.9 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. +BT_USE_OLD_CORIOLIS_BRACKET_BUG = True ! [Boolean] default = False + ! If True, use an order of operations that is not bitwise + ! rotationally symmetric in the meridional Coriolis term of + ! the barotropic solver. + +! === module MOM_thickness_diffuse === +KHTH_MAX_CFL = 0.1 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that + ! is permitted for the thickness diffusivity. 1.0 is the + ! marginally unstable value in a pure layered model, but + ! much smaller numbers (e.g. 0.1) seem to work better for + ! ALE-based models. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. Can be used in ALE mode + ! without restriction but in layer mode can only be used if + ! BULKMIXEDLAYER is true. +FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +MLE_FRONT_LENGTH = 500.0 ! [m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the + ! upscaling of buoyancy gradients that is otherwise represented + ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is + ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. +MLE_USE_PBL_MLD = True ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer + ! depth provided by the active PBL parameterization. If false, + ! MLE will estimate a MLD based on a density difference with the + ! surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer + ! depth used in the MLE restratification parameterization. When + ! the MLD deepens below the current running-mean the running-mean + ! is instantaneously set to the current MLD. + +! === module MOM_diag_to_Z === +!Z_OUTPUT_GRID_FILE = "analysis_vgrid_lev35.v1.nc" ! default = "" +!Z_OUTPUT_GRID_FILE = "interpolate_zgrid_40L.nc" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 35 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary + ! layer scheme to determine the diffusivity and viscosity + ! in the surface boundary layer. +EPBL_IS_ADDITIVE = False ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all + ! other diffusivities. Otherwise, the larger of kappa- + ! shear and ePBL diffusivities are used. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_set_diffusivity === +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model + ! of BBL mixing diffusivity based on Law of the Wall. Otherwise, uses + ! the original BBL scheme. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will + ! work for arbitrary vertical coordinates. If false, + ! calculates Kd/TKE and bounds based on exact energetics/nfor an isopycnal layer-formulation. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 1.5E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 1.5E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.v20140616.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +VERTEX_SHEAR = True ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing + ! at the cell vertices (i.e., the vorticity points). +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. + +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. + +! === module MOM_energetic_PBL === +MSTAR_MODE = 2 ! [units=nondim] default = 0 + ! An integer switch for how to compute MSTAR. + ! 0 for constant MSTAR + ! 1 for MSTAR w/ MLD in stabilizing limit + ! 2 for MSTAR w/ L_E/L_O in stabilizing limit. +MSTAR = 0.0 ! [units=nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +MIX_LEN_EXPONENT = 1.0 ! [units=nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD + ! and the MLD depth which determines the shape of the mixing length. +MSTAR_CAP = 10.0 ! [units=nondim] default = -1.0 + ! Maximum value of mstar allowed in model if non-negative + ! (used if MSTAR_MODE>0). +MSTAR_CONV_ADJ = 0.667 ! [units=nondim] default = 0.0 + ! Factor used for reducing mstar during convection + ! due to reduction of stable density gradient. +MSTAR2_COEF1 = 0.29 ! [units=nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and + ! stabilizing effects are both important (used if MSTAR_MODE=2) +MSTAR2_COEF2 = 0.152 ! [units=nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits + ! the total mixing. (used only if MSTAR_MODE=2) +NSTAR = 0.06 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +TKE_DECAY = 0.01 ! [nondim] default = 2.5 + ! TKE_DECAY relates the vertical rate of decay of the + ! TKE available for mechanical entrainment to the natural + ! Ekman depth. +ML_OMEGA_FRAC = 0.001 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this + ! fraction of the absolute rotation rate blended with the + ! local value of f, as sqrt((1-of)*f^2 + of*4*omega^2). +USE_MLD_ITERATION = True ! [Boolean] default = False + ! A logical that specifies whether or not to use the + ! distance to the bottom of the actively turblent boundary + ! layer to help set the EPBL length scale. +ORIG_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the + ! old method for determining MLD depth in iteration, which + ! is limited to resolution. +EPBL_TRANSITION_SCALE = 0.01 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer + ! at the edge of the boundary layer as a fraction of the + ! boundary layer thickness. The default is 0.1. +USE_LA_LI2016 = True ! [nondim] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to + ! determine the Langmuir number. +LT_ENHANCE = 3 ! [nondim] default = 0 + ! Integer for Langmuir number mode. + ! *Requires USE_LA_LI2016 to be set to True. + ! Options: 0 - No Langmuir + ! 1 - Van Roekel et al. 2014/Li et al., 2016 + ! 2 - Multiplied w/ adjusted La. + ! 3 - Added w/ adjusted La. +LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 + ! Coefficient for Langmuir enhancement if LT_ENHANCE > 1 +LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 + ! Exponent for Langmuir enhancement if LT_ENHANCE > 1 +LT_MOD_LAC1 = 0.0 ! [nondim] default = -0.87 + ! Coefficient for modification of Langmuir number due to + ! MLD approaching Ekman depth if LT_ENHANCE=2. +LT_MOD_LAC4 = 0.0 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to stable Obukhov depth if LT_ENHANCE=2. +LT_MOD_LAC5 = 0.22 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to unstable Obukhov depth if LT_ENHANCE=2. +EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the + ! ePBL code, derived from OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +!CHL_FILE = "seawifs_1998-2006_smoothed_2X.v20140616.nc" ! +CHL_FILE = "seawifs-clim-1997-2010.1440x1080.v20180328.nc" + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +CHL_VARNAME = "chlor_a" ! default = "CHL_A" +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +CHECK_DIFFUSIVE_CFL = True ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers + +! === module ocean_model_init === +OCEAN_SURFACE_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module ocean_model_init === +ICE_SHELF = False ! [Boolean] default = False + ! If true, enables the ice shelf model. +ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False + ! If true, allows icebergs to change boundary condition felt by ocean + +! === module MOM_surface_forcing === +MAX_P_SURF = 0.0 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +WIND_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0018 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +GUST_CONST = 0.0 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +USE_RIGID_SEA_ICE = True ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. +SEA_ICE_RIGID_MASS = 100.0 ! [kg m-2] default = 1000.0 + ! The mass of sea-ice per unit area at which the sea-ice + ! starts to exhibit rigidity +LIQUID_RUNOFF_FROM_DATA = True ! [Boolean] default = False + ! If true, allows liquid river runoff to be specified via + ! the data_table using the component name 'OCN'. +! === module MOM_restart === + +! === module MOM_sum_output === +CALCULATE_APE = False ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +MAXTRUNC = 100000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. + +! === module MOM_file_parser === diff --git a/parm/mom6/MOM_input_025_wav b/parm/mom6/MOM_input_025_wav new file mode 100644 index 0000000000..71e077bfea --- /dev/null +++ b/parm/mom6/MOM_input_025_wav @@ -0,0 +1,912 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in OM4_025. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +! === module MOM === +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interface heights are diffused with a + ! coefficient of KHTH. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +DT = 900.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = 1800.0 ! [s] default = 900.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step, unless + ! THERMO_SPANS_COUPLING is true, in which case DT_THERM + ! can be an integer multiple of the coupling timestep. By + ! default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = True ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer + ! timesteps that can be longer than the coupling timestep. + ! The actual thermodynamic timestep that is used in this + ! case is the largest integer multiple of the coupling + ! timestep that is less than or equal to DT_THERM. +HFREEZE = 20.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth + ! over which melt potential is computed will be min(HFREEZE, OBLD) + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) + ! melt potential will not be computed. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.) +C_P = 3992.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +BAD_VAL_SSH_MAX = 50.0 ! [m] default = 20.0 + ! The value of SSH above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SSS_MAX = 75.0 ! [PPT] default = 45.0 + ! The value of SSS above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MAX = 65.0 ! [deg C] default = 45.0, PTripp: changed from 55.0 on 12/28/2017 + ! The value of SST above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MIN = -3.0 ! [deg C] default = -2.1 + ! The value of SST below which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +WRITE_GEOM = 2 ! default = 1 + ! If =0, never write the geometry and vertical grid files. + ! If =1, write the geometry and vertical grid files only for + ! a new simulation. If =2, always write the geometry and + ! vertical grid files. Other values are invalid. + +! === module MOM_domains === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 1440 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. +NJGLOBAL = 1080 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! Neverland - use the Neverland test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! shelfwave - exponential slope for shelfwave test case. + ! supercritical - flat but with 8.95 degree land mask. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_EDITS_FILE = "All_edits.nc" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +MAXIMUM_DEPTH = 6500.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but deeper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True + ! If true, use an older algorithm to calculate the sine and + ! cosines needed rotate between grid-oriented directions and + ! true north and east. Differences arise at the tripolar fold +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True + ! If true, use older code that incorrectly sets the longitude + ! in some points along the tripolar fold to be off by 360 degrees + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any. +MASKING_DEPTH = 0.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative. +CHANNEL_CONFIG = "list" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" + ! The file from which the list of narrowed channels is read. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +DTFREEZE_DP = -7.75E-08 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = True ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. + +! === module ideal_age_example === + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "layer_coord.nc" ! + ! The file from which the coordinate densities are read. +REGRIDDING_COORDINATE_MODE = "HYCOM1" ! default = "LAYER" + ! Coordinate mode for vertical regridding. + ! Choose among the following possibilities: + ! LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stetched geopotential z* + ! SIGMA_SHELF_ZSTAR - stetched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +BOUNDARY_EXTRAPOLATION = True ! [Boolean] default = False + ! When defined, a proper high-order reconstruction + ! scheme is used within boundary cells rather + ! than PCM. E.g., if PPM is used for remapping, a + ! PPM reconstruction will also be used within + ! boundary cells. +ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! default = "UNIFORM" + ! Determines how to specify the coordinate + ! resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 7*2.0, 2*2.01, 2.02, 2.03, 2.05, 2.08, 2.11, 2.15, 2.21, 2.2800000000000002, 2.37, 2.48, 2.61, 2.77, 2.95, 3.17, 3.4299999999999997, 3.74, 4.09, 4.49, 4.95, 5.48, 6.07, 6.74, 7.5, 8.34, 9.280000000000001, 10.33, 11.49, 12.77, 14.19, 15.74, 17.450000000000003, 19.31, 21.35, 23.56, 25.97, 28.580000000000002, 31.41, 34.47, 37.77, 41.32, 45.14, 49.25, 53.65, 58.370000000000005, 63.42, 68.81, 74.56, 80.68, 87.21000000000001, 94.14, 101.51, 109.33, 117.62, 126.4, 135.68, 145.5, 155.87, 166.81, 178.35, 190.51, 203.31, 216.78, 230.93, 245.8, 261.42, 277.83 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +!TARGET_DENSITIES = 1010.0, 1014.3034, 1017.8088, 1020.843, 1023.5566, 1025.813, 1027.0275, 1027.9114, 1028.6422, 1029.2795, 1029.852, 1030.3762, 1030.8626, 1031.3183, 1031.7486, 1032.1572, 1032.5471, 1032.9207, 1033.2798, 1033.6261, 1033.9608, 1034.2519, 1034.4817, 1034.6774, 1034.8508, 1035.0082, 1035.1533, 1035.2886, 1035.4159, 1035.5364, 1035.6511, 1035.7608, 1035.8661, 1035.9675, 1036.0645, 1036.1554, 1036.2411, 1036.3223, 1036.3998, 1036.4739, 1036.5451, 1036.6137, 1036.68, 1036.7441, 1036.8062, 1036.8526, 1036.8874, 1036.9164, 1036.9418, 1036.9647, 1036.9857, 1037.0052, 1037.0236, 1037.0409, 1037.0574, 1037.0738, 1037.0902, 1037.1066, 1037.123, 1037.1394, 1037.1558, 1037.1722, 1037.1887, 1037.206, 1037.2241, 1037.2435, 1037.2642, 1037.2866, 1037.3112, 1037.3389, 1037.3713, 1037.4118, 1037.475, 1037.6332, 1037.8104, 1038.0 ! [m] + ! HYBRID target densities for itnerfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [not defined] default = 0.0 + ! When interpolating potential density profiles we can add + ! some artificial compressibility solely to make homogenous + ! regions appear stratified. +MAXIMUM_INT_DEPTH_CONFIG = "FNC1:5,8000.0,1.0,.01" ! default = "NONE" + ! Determines how to specify the maximum interface depths. + ! Valid options are: + ! NONE - there are no maximum interface depths + ! PARAM - use the vector-parameter MAXIMUM_INTERFACE_DEPTHS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAXIMUM_INT_DEPTHS = 0.0, 5.0, 12.75, 23.25, 36.49, 52.480000000000004, 71.22, 92.71000000000001, 116.94000000000001, 143.92000000000002, 173.65, 206.13, 241.36, 279.33000000000004, 320.05000000000007, 363.5200000000001, 409.7400000000001, 458.7000000000001, 510.4100000000001, 564.8700000000001, 622.0800000000002, 682.0300000000002, 744.7300000000002, 810.1800000000003, 878.3800000000003, 949.3300000000004, 1023.0200000000004, 1099.4600000000005, 1178.6500000000005, 1260.5900000000006, 1345.2700000000007, 1432.7000000000007, 1522.8800000000008, 1615.8100000000009, 1711.490000000001, 1809.910000000001, 1911.080000000001, 2015.0000000000011, 2121.670000000001, 2231.080000000001, 2343.2400000000007, 2458.1500000000005, 2575.8100000000004, 2696.2200000000003, 2819.3700000000003, 2945.2700000000004, 3073.9200000000005, 3205.3200000000006, 3339.4600000000005, 3476.3500000000004, 3615.9900000000002, 3758.38, 3903.52, 4051.4, 4202.03, 4355.41, 4511.54, 4670.41, 4832.03, 4996.4, 5163.5199999999995, 5333.379999999999, 5505.989999999999, 5681.3499999999985, 5859.459999999998, 6040.319999999998, 6223.919999999998, 6410.269999999999, 6599.369999999999, 6791.219999999999, 6985.8099999999995, 7183.15, 7383.24, 7586.08, 7791.67, 8000.0 + ! The list of maximum depths for each interface. +MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! default = "NONE" + ! Determines how to specify the maximum layer thicknesses. + ! Valid options are: + ! NONE - there are no maximum layer thicknesses + ! PARAM - use the vector-parameter MAX_LAYER_THICKNESS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAX_LAYER_THICKNESS = 400.0, 409.63, 410.32, 410.75, 411.07, 411.32, 411.52, 411.7, 411.86, 412.0, 412.13, 412.24, 412.35, 412.45, 412.54, 412.63, 412.71, 412.79, 412.86, 412.93, 413.0, 413.06, 413.12, 413.18, 413.24, 413.29, 413.34, 413.39, 413.44, 413.49, 413.54, 413.58, 413.62, 413.67, 413.71, 413.75, 413.78, 413.82, 413.86, 413.9, 413.93, 413.97, 414.0, 414.03, 414.06, 414.1, 414.13, 414.16, 414.19, 414.22, 414.24, 414.27, 414.3, 414.33, 414.35, 414.38, 414.41, 414.43, 414.46, 414.48, 414.51, 414.53, 414.55, 414.58, 414.6, 414.62, 414.65, 414.67, 414.69, 414.71, 414.73, 414.75, 414.77, 414.79, 414.83 ! [m] + ! The list of maximum thickness for each layer. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used + ! for vertical remapping for all variables. + ! It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) + +! === module MOM_grid === +! Parameters providing information about the lateral grid. + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid. + +! === module MOM_initialize_layers_from_Z === +!TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" + ! The name of the z-space input file used to initialize + ! temperatures (T) and salinities (S). If T and S are not + ! in the same file, TEMP_Z_INIT_FILE and SALT_Z_INIT_FILE + ! must be set. +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" + ! The name of the salinity variable in + ! SALT_Z_INIT_FILE. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +!Jiande NUM_DIAG_COORDS = 2 ! default = 1 +NUM_DIAG_COORDS = 1 + ! The number of diagnostic vertical coordinates to use. + ! For each coordinate, an entry in DIAG_COORDS must be provided. +!Jiande DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" ! +DIAG_COORDS = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to + ! a coordinate definition used for diagnostics. Each string + ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" +DIAG_MISVAL = -1e34 +!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09" + ! Determines how to specify the coordinate + ! resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz + +! === module MOM_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates + ! a sub-grid mesoscale eddy kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Rhines scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. +MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Eady length scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and + ! stored for re-use. This uses more memory but avoids calling + ! the equation of state more times than should be necessary. +INTERPOLATE_RES_FN = False ! [Boolean] default = True + ! If true, interpolate the resolution function to the + ! velocity points from the thickness points; otherwise + ! interpolate the wave speed and calculate the resolution + ! function independently at each point. +GILL_EQUATORIAL_LD = True ! [Boolean] default = False + ! If true, uses Gill's definition of the baroclinic + ! equatorial deformation radius, otherwise, if false, use + ! Pedlosky's definition. These definitions differ by a factor + ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +PRANDTL_TURB = 1.25 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear + ! instability. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a + ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or + ! the thickness over which near-bottom velocities are + ! averaged for the drag law if BOTTOMDRAGLAW is defined + ! but LINEAR_DRAG is not. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined. +BBL_USE_EOS = True ! [Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 0.001 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. + +! === module MOM_CoriolisAdv === +CORIOLIS_SCHEME = "SADOURNY75_ENSTRO" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option would + ! have no effect on the SADOURNY Coriolis scheme if it + ! were possible to use centered difference thickness fluxes. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_AFV === +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +AH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the biharmonic viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed. +HMIX_FIXED = 0.5 ! [m] + ! The prescribed depth over which the near-surface + ! viscosity and diffusivity are elevated when the bulk + ! mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than maxCFL_BT_cont to be accommodated. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT. +DYNAMIC_SURFACE_PRESSURE = True ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05. +DTBT = -0.9 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down. +BT_USE_OLD_CORIOLIS_BRACKET_BUG = True ! [Boolean] default = False + ! If True, use an order of operations that is not bitwise + ! rotationally symmetric in the meridional Coriolis term of + ! the barotropic solver. + +! === module MOM_thickness_diffuse === +KHTH_MAX_CFL = 0.1 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that + ! is permitted for the thickness diffusivity. 1.0 is the + ! marginally unstable value in a pure layered model, but + ! much smaller numbers (e.g. 0.1) seem to work better for + ! ALE-based models. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. Can be used in ALE mode + ! without restriction but in layer mode can only be used if + ! BULKMIXEDLAYER is true. +FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +MLE_FRONT_LENGTH = 500.0 ! [m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the + ! upscaling of buoyancy gradients that is otherwise represented + ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is + ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. +MLE_USE_PBL_MLD = True ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer + ! depth provided by the active PBL parameterization. If false, + ! MLE will estimate a MLD based on a density difference with the + ! surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer + ! depth used in the MLE restratification parameterization. When + ! the MLD deepens below the current running-mean the running-mean + ! is instantaneously set to the current MLD. + +! === module MOM_diag_to_Z === +!Z_OUTPUT_GRID_FILE = "analysis_vgrid_lev35.v1.nc" ! default = "" +!Z_OUTPUT_GRID_FILE = "interpolate_zgrid_40L.nc" + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. +!NK_ZSPACE (from file) = 35 ! [nondim] + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary + ! layer scheme to determine the diffusivity and viscosity + ! in the surface boundary layer. +EPBL_IS_ADDITIVE = False ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all + ! other diffusivities. Otherwise, the larger of kappa- + ! shear and ePBL diffusivities are used. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === module MOM_set_diffusivity === +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model + ! of BBL mixing diffusivity based on Law of the Wall. Otherwise, uses + ! the original BBL scheme. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will + ! work for arbitrary vertical coordinates. If false, + ! calculates Kd/TKE and bounds based on exact energetics/nfor an isopycnal layer-formulation. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 1.5E-05 ! [m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 1.5E-07 + ! The minimum diapycnal diffusivity. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.v20140616.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. +VERTEX_SHEAR = True ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing + ! at the cell vertices (i.e., the vorticity points). +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. + +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities. + +! === module MOM_energetic_PBL === +MSTAR_MODE = 2 ! [units=nondim] default = 0 + ! An integer switch for how to compute MSTAR. + ! 0 for constant MSTAR + ! 1 for MSTAR w/ MLD in stabilizing limit + ! 2 for MSTAR w/ L_E/L_O in stabilizing limit. +MSTAR = 0.0 ! [units=nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +MIX_LEN_EXPONENT = 1.0 ! [units=nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD + ! and the MLD depth which determines the shape of the mixing length. +MSTAR_CAP = 10.0 ! [units=nondim] default = -1.0 + ! Maximum value of mstar allowed in model if non-negative + ! (used if MSTAR_MODE>0). +MSTAR_CONV_ADJ = 0.667 ! [units=nondim] default = 0.0 + ! Factor used for reducing mstar during convection + ! due to reduction of stable density gradient. +MSTAR2_COEF1 = 0.29 ! [units=nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and + ! stabilizing effects are both important (used if MSTAR_MODE=2) +MSTAR2_COEF2 = 0.152 ! [units=nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits + ! the total mixing. (used only if MSTAR_MODE=2) +NSTAR = 0.06 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +TKE_DECAY = 0.01 ! [nondim] default = 2.5 + ! TKE_DECAY relates the vertical rate of decay of the + ! TKE available for mechanical entrainment to the natural + ! Ekman depth. +ML_OMEGA_FRAC = 0.001 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this + ! fraction of the absolute rotation rate blended with the + ! local value of f, as sqrt((1-of)*f^2 + of*4*omega^2). +USE_MLD_ITERATION = True ! [Boolean] default = False + ! A logical that specifies whether or not to use the + ! distance to the bottom of the actively turblent boundary + ! layer to help set the EPBL length scale. +ORIG_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the + ! old method for determining MLD depth in iteration, which + ! is limited to resolution. +EPBL_TRANSITION_SCALE = 0.01 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer + ! at the edge of the boundary layer as a fraction of the + ! boundary layer thickness. The default is 0.1. +USE_LA_LI2016 = True ! [nondim] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to + ! determine the Langmuir number. +LT_ENHANCE = 3 ! [nondim] default = 0 + ! Integer for Langmuir number mode. + ! *Requires USE_LA_LI2016 to be set to True. + ! Options: 0 - No Langmuir + ! 1 - Van Roekel et al. 2014/Li et al., 2016 + ! 2 - Multiplied w/ adjusted La. + ! 3 - Added w/ adjusted La. +USE_WAVES = True ! [Boolean] default = False + ! If true, enables surface wave modules. +WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" + ! Choice of wave method, valid options include: + ! TEST_PROFILE - Prescribed from surface Stokes drift + ! and a decay wavelength. + ! SURFACE_BANDS - Computed from multiple surface values + ! and decay wavelengths. + ! DHH85 - Uses Donelan et al. 1985 empirical + ! wave spectrum with prescribed values. + ! LF17 - Infers Stokes drift profile from wind + ! speed following Li and Fox-Kemper 2017. +SURFBAND_SOURCE = "COUPLER" ! default = "EMPTY" + ! Choice of SURFACE_BANDS data mode, valid options include: + ! DATAOVERRIDE - Read from NetCDF using FMS DataOverride. + ! COUPLER - Look for variables from coupler pass + ! INPUT - Testing with fixed values. +STK_BAND_COUPLER = 3 ! default = 1 + ! STK_BAND_COUPLER is the number of Stokes drift bands in the coupler. This has + ! to be consistent with the number of Stokes drift bands in WW3, or the model + ! will fail. +SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 + ! Central wavenumbers for surface Stokes drift bands. +LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 + ! Coefficient for Langmuir enhancement if LT_ENHANCE > 1 +LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 + ! Exponent for Langmuir enhancement if LT_ENHANCE > 1 +LT_MOD_LAC1 = 0.0 ! [nondim] default = -0.87 + ! Coefficient for modification of Langmuir number due to + ! MLD approaching Ekman depth if LT_ENHANCE=2. +LT_MOD_LAC4 = 0.0 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to stable Obukhov depth if LT_ENHANCE=2. +LT_MOD_LAC5 = 0.22 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to unstable Obukhov depth if LT_ENHANCE=2. +EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the + ! ePBL code, derived from OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation. +!CHL_FILE = "seawifs_1998-2006_smoothed_2X.v20140616.nc" ! +CHL_FILE = "seawifs-clim-1997-2010.1440x1080.v20180328.nc" + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +CHL_VARNAME = "chlor_a" ! default = "CHL_A" +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +CHECK_DIFFUSIVE_CFL = True ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use 1 iteration. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers + +! === module ocean_model_init === +OCEAN_SURFACE_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module ocean_model_init === +ICE_SHELF = False ! [Boolean] default = False + ! If true, enables the ice shelf model. +ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False + ! If true, allows icebergs to change boundary condition felt by ocean + +! === module MOM_surface_forcing === +MAX_P_SURF = 0.0 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +WIND_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0018 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +GUST_CONST = 0.0 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +USE_RIGID_SEA_ICE = True ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. +SEA_ICE_RIGID_MASS = 100.0 ! [kg m-2] default = 1000.0 + ! The mass of sea-ice per unit area at which the sea-ice + ! starts to exhibit rigidity +LIQUID_RUNOFF_FROM_DATA = True ! [Boolean] default = False + ! If true, allows liquid river runoff to be specified via + ! the data_table using the component name 'OCN'. +! === module MOM_restart === + +! === module MOM_sum_output === +CALCULATE_APE = False ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +MAXTRUNC = 100000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. + +! === module MOM_file_parser === diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 978316a12a..c3dd497a5a 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -17,18 +17,19 @@ FV3_GEFS_postdet(){ } DATM_postdet(){ -###################################################################### -# 3.1 Link DATM inputs (ie forcing files) # -###################################################################### - -#TODO: This should be some loop through CDATE-> CDATE+ FORECAST length -#and get input from either CFSR or GEFS or Whatever... -#Currently assumes you only need the month of DATM input for IC date - -# DATM forcing file name convention is ${DATM_FILENAME_BASE}.$YYYYMMDDHH.nc -echo "Link DATM forcing files" -DATMINPUTDIR="/scratch2/NCEPDEV/marineda/DATM_INPUT/CFSR/${SYEAR}${SMONTH}" -ln -sf ${DATMINPUTDIR}/${DATM_FILENAME_BASE}*.nc $DATA/DATM_INPUT/ + ###################################################################### + # Link DATM inputs (ie forcing files) # + ###################################################################### + + #TODO: This should be some loop through CDATE-> CDATE+ FORECAST length + #and get input from either CFSR or GEFS or Whatever... + #Currently assumes you only need the month of DATM input for IC date + #DATMINPUTDIR should be machine specific + + # DATM forcing file name convention is ${DATM_FILENAME_BASE}.$YYYYMMDDHH.nc + echo "Link DATM forcing files" + DATMINPUTDIR="/scratch2/NCEPDEV/marineda/DATM_INPUT/CFSR/${SYEAR}${SMONTH}" + $NLN -sf ${DATMINPUTDIR}/${DATM_FILENAME_BASE}*.nc $DATA/DATM_INPUT/ } FV3_GFS_postdet(){ @@ -177,8 +178,10 @@ EOF $NLN $FIXfv3/$CASE/${CASE}_grid.tile${n}.nc $DATA/INPUT/${CASE}_grid.tile${n}.nc $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile${n}.nc $DATA/INPUT/oro_data.tile${n}.nc done - if [ $cpl = ".false." ] ; then + if [ $cplflx = ".false." ] ; then $NLN $FIXfv3/$CASE/${CASE}_mosaic.nc $DATA/INPUT/grid_spec.nc + else + $NLN $FIXfv3/$CASE/${CASE}_mosaic.nc $DATA/INPUT/${CASE}_mosaic.nc fi # GFS standard input data @@ -485,6 +488,9 @@ if [ $SEND = "YES" ]; then done fi fi + +$NCP -p $DATA/input.nml $COMOUT/ + echo "SUB ${FUNCNAME[0]}: Output data for FV3 copied" } @@ -511,22 +517,25 @@ MOM6_postdet() { echo "SUB ${FUNCNAME[0]}: MOM6 after run type determination" + OCNRES=${OCNRES:-"025"} + # Copy MOM6 ICs - cp -pf $ICSDIR/$CDATE/ocn/MOM*nc $DATA/INPUT/ + $NCP -pf $ICSDIR/$CDATE/ocn/MOM*nc $DATA/INPUT/ # Copy MOM6 fixed files - cp -pf $FIXmom/INPUT/* $DATA/INPUT/ - cp -pf $FIXmom/INPUT/MOM_input_with_runoff $DATA/INPUT/MOM_input + $NCP -pf $FIXmom/$OCNRES/* $DATA/INPUT/ + + # Copy MOM6 input file + $NCP -pf $HOMEgfs/parm/mom6/MOM_input_$OCNRES $DATA/INPUT/MOM_input + #TODO: if cplwav, copy MOM_input_$OCNRES_wav + #TODO: update to make MOM_input configurable - # Copy grid_spec and mosaic files - cp -pf $FIXgrid/$CASE/${CASE}_mosaic* $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/grid_spec.nc $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/ocean_mask.nc $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/land_mask* $DATA/INPUT/ + # Copy coupled grid_spec + $NCP -pf $FIX_DIR/fix_cpl/a${CASE}o${OCNRES}/grid_spec.nc $DATA/INPUT/ # Copy mediator restart files to RUNDIR if [ $runtyp = 'continue' ]; then - cp $ROTDIR/$CDUMP.$PDY/$cyc/mediator_* $DATA/ + $NCP $ROTDIR/$CDUMP.$PDY/$cyc/mediator_* $DATA/ fi echo "SUB ${FUNCNAME[0]}: MOM6 input data linked/copied" @@ -572,28 +581,23 @@ MOM6_out() for fhr in $fhrlst; do export fhr=$fhr if [[ 10#$fhr -ge 6 ]]; then - hh_inc_m=$((10#$FHOUT/2)) - #hh_inc_m=3 - #hh_in_o=6 - hh_inc_o=$((10#$FHOUT )) + hh_inc_m=$((10#$FHOUT/2)) + hh_inc_o=$((10#$FHOUT )) # ------------------------------------------------------ # adjust the dates on the mom filenames and save # ------------------------------------------------------ - VDATE=$($NDATE $fhr $IDATE) - YYYY=`echo $VDATE | cut -c1-4` - MM=`echo $VDATE | cut -c5-6` - DD=`echo $VDATE | cut -c7-8` - HH=`echo $VDATE | cut -c9-10` - SS=$((10#$HH*3600)) - - # m_date=$($NDATE $hh_inc_m $DDATE) - # p_date=$($NDATE $hh_inc_o $DDATE) + VDATE=$($NDATE $fhr $IDATE) + YYYY=`echo $VDATE | cut -c1-4` + MM=`echo $VDATE | cut -c5-6` + DD=`echo $VDATE | cut -c7-8` + HH=`echo $VDATE | cut -c9-10` + SS=$((10#$HH*3600)) - m_date=$($NDATE -$hh_inc_m $VDATE) - p_date=$VDATE + m_date=$($NDATE -$hh_inc_m $VDATE) + p_date=$VDATE - # This loop probably isn't needed + #TODO: Determine if this loop is needed year=`echo $m_date | cut -c1-4` month=`echo $m_date | cut -c5-6` day=`echo $m_date | cut -c7-8` @@ -607,9 +611,8 @@ MOM6_out() [[ $status -ne 0 ]] && exit $status fi done - $NCP -p $DATA/SST*nc $COMOUT/ - $NCP -p $DATA/input.nml $COMOUT/ - $NCP -p $DATA/ice_in $COMOUT/ + $NCP -p $DATA/ocn_daily*nc $COMOUT/ + $NCP -p $DATA/wavocn*nc $COMOUT/ #temporary for p4 $NCP -p $DATA/INPUT/MOM_input $COMOUT/ } @@ -618,10 +621,7 @@ CICE_postdet() echo "SUB ${FUNCNAME[0]}: CICE after run type determination" year=$(echo $CDATE|cut -c 1-4) - #BL2018 stepsperhr=$((3600/$ICETIM)) - #BL2018 - #nhours=$(${NHOUR} ${CDATE} ${SYEAR}010100) nhours=$($NHOUR $CDATE ${year}010100) istep0=$((nhours*stepsperhr)) steps=$((nhours*stepsperhr)) @@ -631,20 +631,18 @@ CICE_postdet() restart_interval=${restart_interval:-1296000} # restart write interval in seconds, default 15 days dumpfreq_n=$restart_interval # restart write interval in seconds - #BL2018 - #dumpfreq='d' - #dumpfreq='s' - if [ -d $ROTDIR/../NEXT_IC ]; then - #continuing run "hot start" - RUNTYPE='continue' - USE_RESTART_TIME='.true.' - restart_pond_lvl=${restart_pond_lvl:-".true."} - else + #TODO: Determine the properway to determine if it's a 'hot start' or not + #if [ hotstart ]; then + # #continuing run "hot start" + # RUNTYPE='continue' + # USE_RESTART_TIME='.true.' + # restart_pond_lvl=${restart_pond_lvl:-".true."} + #else #using cold start IC RUNTYPE='initial' USE_RESTART_TIME='.false.' restart_pond_lvl=${restart_pond_lvl:-".false."} - fi + #fi dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" @@ -653,7 +651,8 @@ CICE_postdet() if [ $ICERES = '025' ]; then ICERESmx="mx025" ICERESdec="0.25" - else if [ $ICERES = '050' ]; then + fi + if [ $ICERES = '050' ]; then ICERESmx="mx050" ICERESdec="0.50" fi @@ -664,17 +663,11 @@ CICE_postdet() iceic="cice5_model.res_$CDATE.nc" # Copy CICE5 IC - cp -p $ICSDIR/$CDATE/ice/cice5_model_${ICERESdec}.res_$CDATE.nc $DATA/$iceic + $NCP -p $ICSDIR/$CDATE/ice/cice5_model_${ICERESdec}.res_$CDATE.nc $DATA/$iceic echo "Link CICE fixed files" - ln -sf $FIXcice/${ice_grid_file} $DATA/ - ln -sf $FIXcice/${ice_kmt_file} $DATA/ - - # Copy grid_spec and mosaic files - cp -pf $FIXgrid/$CASE/${CASE}_mosaic* $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/grid_spec.nc $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/ocean_mask.nc $DATA/INPUT/ - cp -pf $FIXgrid/$CASE/land_mask* $DATA/INPUT/ + $NLN -sf $FIXcice/${ice_grid_file} $DATA/ + $NLN -sf $FIXcice/${ice_kmt_file} $DATA/ } CICE_nml() @@ -689,6 +682,7 @@ CICE_out() echo "SUB ${FUNCNAME[0]}: Copying output data for CICE" export ENSMEM=${ENSMEM:-01} export IDATE=$CDATE + $NCP -p $DATA/ice_in $COMOUT/ if [ $FHRGRP -eq 0 ]; then fhrlst="anl" else From c1719f750a4dedc7c44eff3b703d628f0a50143c Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 19:42:23 +0000 Subject: [PATCH 38/91] renaming exe to reflect updated build --- sorc/build_fv3_coupled.sh | 2 +- sorc/link_fv3gfs.sh | 27 ++------------------------- workflow/config/fcst.yaml | 2 +- 3 files changed, 4 insertions(+), 27 deletions(-) diff --git a/sorc/build_fv3_coupled.sh b/sorc/build_fv3_coupled.sh index 9a2266688e..b7ea3cc038 100755 --- a/sorc/build_fv3_coupled.sh +++ b/sorc/build_fv3_coupled.sh @@ -20,4 +20,4 @@ if [ $target = theia ]; then target=theia.intel ; fi cd fv3_coupled.fd/NEMS make -j 8 app=coupledFV3_CCPP_MOM6_CICE_WW3 build -mv ./exe/NEMS.x ./exe/nems_fv3_mom6_cice5.x +mv ./exe/NEMS.x ./exe/nems_fv3_ccpp_mom6_cice5_ww3.x diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 3de519feb9..29ba78f8ec 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -74,15 +74,6 @@ if [ ! -r $FIX_DIR ]; then exit -1 fi -if [ ! -z $FIX_DIR ]; then - if [ ! -d ${pwd}/../fix ]; then mkdir ${pwd}/../fix; fi - cd ${pwd}/../fix ||exit 8 - for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 ; do - [[ -d $dir ]] && rm -rf $dir - done - $LINK $FIX_DIR/* . -fi - #--------------------------------------- #--add files from external repositories #--------------------------------------- @@ -211,8 +202,8 @@ cd ${pwd}/../ush ||exit 8 cd $pwd/../exec if [ $model == "coupled" ]; then -[[ -s nems_fv3_mom6_cice5.x ]] && rm -f nems_fv3_mom6_cice5.x -$LINK ../sorc/fv3_coupled.fd/NEMS/exe/nems_fv3_mom6_cice5.x . +[[ -s nems_fv3_ccpp_mom6_cice5_ww3.x ]] && rm -f nems_fv3_ccpp_mom6_cice5_ww3.x +$LINK ../sorc/fv3_coupled.fd/NEMS/exe/nems_fv3_ccpp_mom6_cice5_ww3.x . else [[ -s global_fv3gfs.x ]] && rm -f global_fv3gfs.x $LINK ../sorc/fv3gfs.fd/NEMS/exe/global_fv3gfs.x . @@ -287,20 +278,6 @@ if [ $target = wcoss_dell_p3 ]; then $LINK ../sorc/gfs_wafs.fd/exec/$wafsexe . done fi - -#cd ${pwd} -#cd gsi.fd -#gsi_branch=`git branch | grep \*` -#cd ../fv3gfs.fd -#fv3gfs_branch=`git branch | grep \*` -#cd ../gfs_post.fd -#gfspost_branch=`git branch | grep \*` - -#set +x -#echo "FV3 Branch: $fv3gfs_branch" -#echo "GSI Branch: $gsi_branch" -#echo "POST Branch: $gfspost_branch" - #------------------------------ #--link source code directories diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 8be2a9239f..e1568d5145 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -6,7 +6,7 @@ config_fcst: filename: config.fcst FCSTEXEC: !FirstTrue - when: !calc doc.settings.cplflx==".true." - do: "nems_fv3_mom6_cice5.x" + do: "nems_fv3_ccpp_mom6_cice5_ww3.x" - otherwise: "global_fv3gfs.x" more_exports_for_microphys: !FirstTrue - when: !calc ( doc.fv3_gfs_settings.imp_physics=="11" ) From 3ed86895fd15576a8c1be3a8403dc46521248be7 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 19:54:00 +0000 Subject: [PATCH 39/91] update diag_table for ocean --- README.md | 3 +++ parm/parm_fv3diag/diag_table_cpl | 41 ++++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7d890c46f0..511c49b54c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,10 @@ sh build_ncep_post.sh #This command will build ncep_post. sh build_fv3_coupled.sh #This command will build ufs-s2s-model To link fixed files and executable programs for the coupled application: +On Hera: sh link_fv3gfs.sh emc hera coupled +On Orion: +sh link_fv3gfs.sh emc orion coupled ``` ## Create CROW user file diff --git a/parm/parm_fv3diag/diag_table_cpl b/parm/parm_fv3diag/diag_table_cpl index 1c55bcf9dd..06ad741978 100644 --- a/parm/parm_fv3diag/diag_table_cpl +++ b/parm/parm_fv3diag/diag_table_cpl @@ -8,7 +8,8 @@ "fv3_history2d", 0, "hours", 1, "hours", "time" ###################### "ocn%4yr%2mo%2dy%2hr", 6, "hours", 1, "hours", "time", 6, "hours", "1901 1 1 0 0 0" -"SST%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "1901 1 1 0 0 0" +"ocn_daily%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "1901 1 1 0 0 0" +"wavocn%4yr%2mo%2dy%2hr", 6, "hours", 1, "hours", "time", 6, "hours", "1901 1 1 0 0 0" ############################################## # static fields "ocean_model", "geolon", "geolon", "ocn%4yr%2mo%2dy%2hr", "all", .false., "none", 2 @@ -40,9 +41,23 @@ "ocean_model", "MLD_0125", "MLD_0125", "ocn%4yr%2mo%2dy%2hr","all",.true.,"none",2 # save daily SST - "ocean_model", "geolon", "geolon", "SST%4yr%2mo%2dy", "all", .false., "none", 2 - "ocean_model", "geolat", "geolat", "SST%4yr%2mo%2dy", "all", .false., "none", 2 - "ocean_model", "SST", "sst", "SST%4yr%2mo%2dy", "all", .true., "none", 2 + "ocean_model", "geolon", "geolon", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolat", "geolat", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolon_c", "geolon_c", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolat_c", "geolat_c", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolon_u", "geolon_u", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolat_u", "geolat_u", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolon_v", "geolon_v", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "geolat_v", "geolat_v", "ocn_daily%4yr%2mo%2dy", "all", .false., "none", 2 + "ocean_model", "SST", "sst", "ocn_daily%4yr%2mo%2dy", "all", .true., "none", 2 + "ocean_model", "latent", "latent", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "sensible", "sensible", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "SW", "SW", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "LW", "LW", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "evap", "evap", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "lprec", "lprec", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "taux", "taux", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 + "ocean_model", "tauy", "tauy", "ocn_daily%4yr%2mo%2dy","all",.true.,"none",2 # Z-Space Fields Provided for CMIP6 (CMOR Names): #=============================================== @@ -65,6 +80,24 @@ "ocean_model", "fprec", "fprec", "ocn%4yr%2mo%2dy%2hr","all",.true.,"none",2 "ocean_model", "LwLatSens", "LwLatSens", "ocn%4yr%2mo%2dy%2hr","all",.true.,"none",2 "ocean_model", "Heat_PmE", "Heat_PmE", "ocn%4yr%2mo%2dy%2hr","all",.true.,"none",2 + +#wave_variables + "ocean_model", "geolon", "geolon", "wavocn%4yr%2mo%2dy%2hr","all", .false., "none", 2 + "ocean_model", "geolat", "geolat", "wavocn%4yr%2mo%2dy%2hr","all", .false., "none", 2 + "ocean_model", "MSTAR", "MSTAR", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "LA", "LA", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "LA_MOD", "LA_MOD", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "MSTAR_LT", "MSTAR_LT", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_h_ML", "ePBL", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ustar", "ustar", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_wind", "ePBL_TKE_wind", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_MKE", "ePBL_TKE_MKE", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_conv", "ePBL_TKE_conv", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_forcing", "ePBL_TKE_forcing", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_mixing", "ePBL_TKE_mixing", "wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_mech_decay","ePBL_TKE_mech_decay","wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + "ocean_model", "ePBL_TKE_conv_decay","ePBL_TKE_conv_decay","wavocn%4yr%2mo%2dy%2hr","all", .true., "none", 2 + #============================================================================================= "gfs_dyn", "ucomp", "ugrd", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "vcomp", "vgrd", "fv3_history", "all", .false., "none", 2 From 6542bf30feb5785599ef314b067bb66dab51524e Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 21:22:56 +0000 Subject: [PATCH 40/91] updates for ice_in to match prototype 4 --- ush/forecast_det.sh | 22 ------- ush/forecast_postdet.sh | 20 +++++-- ush/nems_configure.sh | 2 +- ush/parsing_namelists_CICE.sh | 106 +++++++++++++++++----------------- 4 files changed, 68 insertions(+), 82 deletions(-) diff --git a/ush/forecast_det.sh b/ush/forecast_det.sh index 162fa4503d..a61471a867 100755 --- a/ush/forecast_det.sh +++ b/ush/forecast_det.sh @@ -74,30 +74,8 @@ WW3_det(){ CICE_det(){ echo "SUB ${FUNCNAME[0]}: Run type determination for CICE" - export histfreq_n=$FHOUT - - # Create ice_in file - - if [ $inistep = "restart" ] ; then - runtyp=continue - restim=.true. - else - runtyp=initial - restim=.false. - fi } MOM6_det(){ echo "SUB ${FUNCNAME[0]}: Run type determination for MOM6" - export histfreq_n=$FHOUT - - # Create ice_in file - - if [ $inistep = "restart" ] ; then - runtyp=continue - restim=.true. - else - runtyp=initial - restim=.false. - fi } diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index c3dd497a5a..6c98905887 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -527,6 +527,7 @@ MOM6_postdet() # Copy MOM6 input file $NCP -pf $HOMEgfs/parm/mom6/MOM_input_$OCNRES $DATA/INPUT/MOM_input + #TODO: if cplwav, copy MOM_input_$OCNRES_wav #TODO: update to make MOM_input configurable @@ -628,10 +629,20 @@ CICE_postdet() npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work histfreq_n=${histfreq_n:-6} - restart_interval=${restart_interval:-1296000} # restart write interval in seconds, default 15 days - dumpfreq_n=$restart_interval # restart write interval in seconds + restart_interval=${restart_interval:-3024000} # restart write interval in seconds, default 35 days + dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} # restart write interval in seconds + dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" + + cice_hist_avg=${cice_hist_avg:-".true."} + + FRAZIL_FWSALT=${FRAZIL_FWSALT:-".true."} + tr_pond_lvl=${tr_pond_lvl:-".true."} # Use level melt ponds tr_pond_lvl=true - #TODO: Determine the properway to determine if it's a 'hot start' or not + # restart_pond_lvl (if tr_pond_lvl=true): + # -- if true, initialize the level ponds from restart (if runtype=continue) + # -- if false, re-initialize level ponds to zero (if runtype=initial or continue) + + #TODO: Determine the proper way to determine if it's a 'hot start' or not #if [ hotstart ]; then # #continuing run "hot start" # RUNTYPE='continue' @@ -644,9 +655,6 @@ CICE_postdet() restart_pond_lvl=${restart_pond_lvl:-".false."} #fi - dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} - dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" - ICERES=${ICERES:-"025"} if [ $ICERES = '025' ]; then ICERESmx="mx025" diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index 27d37b51d2..a362d12259 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -22,7 +22,7 @@ if [[ $inistep = "cold" ]]; then restart_interval=0 coldstart=true # this is the correct setting else - restart_interval=${restart_interval:-1296000} # Interval in seconds to write restarts + restart_interval=${restart_interval:-3024000} # Interval in seconds to write restarts coldstart=false fi diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index df8978cd46..270a007229 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -11,33 +11,33 @@ cat > ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < Date: Thu, 28 May 2020 21:52:55 +0000 Subject: [PATCH 41/91] updates for CCPP suite used in p4 --- ush/parsing_namelists_FV3.sh | 8 ++++++++ workflow/cases/coupled_free_forecast.yaml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 709a643589..202208cb4a 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -203,6 +203,14 @@ cat >> input.nml <> input.nml << EOF + oz_phys = .false. + oz_phys_2015 = .true. +EOF +fi + if [ $CCPP_SUITE = "FV3_GSD_v0" ]; then cat >> input.nml << EOF ltaerosol = ${ltaerosol:-".F."} ! In config.fcst diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 3733984956..ee20304d1b 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -30,7 +30,7 @@ case: LEVS: 65 DELTIM: 450 SEEDLET: 10 - CCPP_SUITE: GFS + CCPP_SUITE: FV3_GFS_v15p2_coupled nst_anl: no DO_SKEB: false DO_SHUM: false From e28f85a8d16ad6c541c36d76c0e08d3ad217c293 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 22:25:17 +0000 Subject: [PATCH 42/91] making a fix dir of all available ccpp suite files copying suite xml file to rundirectory --- sorc/link_fv3gfs.sh | 11 +++++++++++ ush/forecast_postdet.sh | 3 +++ 2 files changed, 14 insertions(+) diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 29ba78f8ec..1cf2eb4878 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -321,6 +321,17 @@ cd ${pwd}/../sorc || exit 8 fi +#Link CCPP Suite files: +cd $pwd/../fix +[[ -d fix_ccpp_suites ]] && rm -rf fix_ccpp_suites +if [ $model == "coupled" ]; then +$SLINK ../sorc/fv3_coupled.fd/FV3/ccpp/suites fix_ccpp_suites +else +$SLINK ../sorc/fv3gfs.fd/FV3/ccpp/suites fix_ccpp_suites +fi + + + #------------------------------ #--choose dynamic config.base for EMC installation #--choose static config.base for NCO installation diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 6c98905887..aa4fff317e 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -184,6 +184,9 @@ EOF $NLN $FIXfv3/$CASE/${CASE}_mosaic.nc $DATA/INPUT/${CASE}_mosaic.nc fi + # CCPP Suite file + $NCP -p $FIX_DIR/fix_ccpp_suites/suite_${CCPP_SUITE}.xml $DATA/ + # GFS standard input data IALB=${IALB:-1} From 3fb44386b21a62edd382ead12ad34e9ccb5d3189 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 28 May 2020 23:36:22 +0000 Subject: [PATCH 43/91] updating for reorganized tar files, pulling in changes from wcoss-p2 workflow --- jobs/rocoto/arch.sh | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/jobs/rocoto/arch.sh b/jobs/rocoto/arch.sh index beb5eb976d..7205cfb81c 100755 --- a/jobs/rocoto/arch.sh +++ b/jobs/rocoto/arch.sh @@ -152,10 +152,16 @@ fi cd $ROTDIR -if [ $cpl = ".true." ]; then +if [ $cplflx = ".true." ]; then # ocn and ice files - for targrp in ocn ocn2 ice SST; do - htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + echo "current location is $ROTDIR" + echo `date` + echo "starting gzip netcdf files, this will take a while ......" + gzip $COMIN/ocn_2D*nc $COMIN/ice*nc $COMIN/ocn_daily*nc + echo `date` + echo "gzip done !" + for targrp in ocn ocn_2D ocn_3D ocn_xsect ice ocn_daily log wavocn wave; do + htar -P -cvf $ATARDIR/$CDATE/${targrp}_c384.tar `cat $ARCH_LIST/${targrp}.txt` done for targrp in gfs_flux_1p00 gfs_pgrb2b; do htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` @@ -163,6 +169,28 @@ if [ $cpl = ".true." ]; then fi if [ $CDUMP = "gfs" ]; then + if [ $cplflx = ".true." ]; then + #Reorganize tar files + + htar -P -cvf $ATARDIR/$CDATE/gfs_pgrb2_0p25.tar `cat $ARCH_LIST/gfsa.txt` + htar -P -cvf $ATARDIR/$CDATE/gfs_pgrb2_1p00.tar `cat $ARCH_LIST/gfsb.txt` + + for targrp in gfs_nemsioa gfs_nemsiob gfs_pgrb2_1p00 gfs_pgrb2_0p25 gfs_pgrb2b_1p00 gfs_pgrb2b_0p25; do + htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE ${targrp}.tar failed" + exit $status + fi + done + + htar -P -cvf $ATARDIR/$CDATE/gfs_flux_c384.tar `cat $ARCH_LIST/gfs_flux.txt` + + for targrp in gfs_flux_1p00; do + htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + done + + else #leave as is #for targrp in gfsa gfsb - NOTE - do not check htar error status for targrp in gfsa gfsb; do @@ -178,7 +206,8 @@ if [ $CDUMP = "gfs" ]; then exit $status fi done - + fi + if [ $SAVEFCSTIC = "YES" ]; then htar -P -cvf $ATARDIR/$CDATE/gfs_restarta.tar `cat $ARCH_LIST/gfs_restarta.txt` status=$? From c2c7824a5cd7fba79881157a2a8be184d6832589 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 29 May 2020 16:38:15 +0000 Subject: [PATCH 44/91] last of archive updates for p4 --- ush/hpssarch_gen.sh | 52 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index bf58880cc1..424ed735a1 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -42,22 +42,42 @@ if [ $type = "gfs" ]; then head="gfs.t${cyc}z." # for coupled model -if [ $cpl = ".true." ]; then - echo "cpl=",$cpl +if [ $cplflx = ".true." ]; then + echo "cplflx=",$cplflx + rm -f gfs_pgrb2b_1p00.txt + rm -f gfs_pgrb2b_0p25.txt rm -f gfs_flux_1p00.txt - rm -f ocn.txt - rm -f ocn2.txt + rm -f ocn.txt + rm -f ocn_2D.txt + rm -f ocn_3D.txt + rm -f ocn_xsect.txt + rm -f log.txt rm -f ice.txt - rm -f SST.txt + rm -f ocn_daily.txt + rm -f wavocn.txt touch gfs_flux_1p00.txt - touch ocn.txt - touch ocn2.txt - touch ice.txt - touch SST.txt + touch gfs_pgrb2b_1p00.txt + touch gfs_pgrb2b_0p25.txt + touch ocn.txt + touch ocn_2D.txt + touch ocn_3D.txt + touch ocn_xsect.txt + touch ocn_daily.txt + touch log.txt + touch ice.txt + touch wavocn.txt echo "${dirname}ice*nc " >>ice.txt - echo "${dirname}ocn*nc " >>ocn.txt - echo "${dirname}ocn_ice*grb2 " >>ocn2.txt - echo "${dirname}SST*nc " >>SST.txt + echo "${dirname}ocn_2D* " >>ocn_2D.txt + echo "${dirname}ocn_3D* " >>ocn_3D.txt + echo "${dirname}ocn*EQ* " >>ocn_xsect.txt + echo "${dirname}ocn_daily* " >>ocn_daily.txt + echo "${dirname}wavocn* " >>wavocn.txt + echo "${dirname}input.nml " >>log.txt + echo "${dirname}ice_in " >>log.txt + echo "${dirname}MOM_input " >>log.txt + echo "./logs/${CDATE}/gfs*.log " >>log.txt + echo "${dirname}${head}logf*.nemsio " >>log.txt + echo "${dirname}ocn_ice*grb2 " >>ocn.txt echo "${dirname}${head}flux.1p00.f??? " >>gfs_flux_1p00.txt echo "${dirname}${head}flux.1p00.f???.idx " >>gfs_flux_1p00.txt fi @@ -100,6 +120,14 @@ fi echo "${dirname}${head}pgrb2b.0p50.f${fhr} " >>gfs_pgrb2b.txt echo "${dirname}${head}pgrb2b.0p50.f${fhr}.idx " >>gfs_pgrb2b.txt + if [ $cplflx = ".true." ]; then + echo "${dirname}${head}pgrb2b.0p25.f${fhr} " >>gfs_pgrb2b_0p25.txt + echo "${dirname}${head}pgrb2b.0p25.f${fhr}.idx " >>gfs_pgrb2b_0p25.txt + echo "${dirname}${head}pgrb2b.1p00.f${fhr} " >>gfs_pgrb2b_1p00.txt + echo "${dirname}${head}pgrb2b.1p00.f${fhr}.idx " >>gfs_pgrb2b_1p00.txt + echo "${dirname}${head}flux.1p00.f${fhr} " >>gfs_flux_1p00.txt + echo "${dirname}${head}flux.1p00.f${fhr}.idx " >>gfs_flux_1p00.txt + fi echo "${dirname}${head}sfluxgrbf${fhr}.grib2 " >>gfs_flux.txt echo "${dirname}${head}sfluxgrbf${fhr}.grib2.idx " >>gfs_flux.txt From c2b104672cce61ea951f56e7b4b0139337770b45 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 29 May 2020 16:47:38 +0000 Subject: [PATCH 45/91] updating module files to match s2s model and ncep post modules --- modulefiles/module_base.hera | 21 +++++++++++++++++---- modulefiles/module_base.orion | 25 +++++++++++++++++++------ 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/modulefiles/module_base.hera b/modulefiles/module_base.hera index 84be86e705..0e24ced183 100644 --- a/modulefiles/module_base.hera +++ b/modulefiles/module_base.hera @@ -1,26 +1,39 @@ #%Module###################################################################### ## -## FV3GFS prerequisites +## S2S prerequisites ## module load intel/18.0.5.274 module load impi/2018.0.4 module load wgrib2/2.0.8 module load hpss/hpss -module load pnetcdf/1.10.0 +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 module load netcdf/4.7.0 module load nco/4.7.0 -module load hdf5/1.10.5 + module load gempak/7.4.2 module load ncl/6.5.0 #Load from official NCEPLIBS module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles -module load g2tmpl/1.5.0 +module load g2tmpl/1.6.0 module load grib_util/1.1.1 module load crtm/2.2.6 module load prod_util/1.1.0 +module load bacio/2.0.3 +module load ip/3.0.2 +module load nemsio/2.2.4 +module load sp/2.0.3 +module load w3emc/2.3.1 +module load w3nco/2.0.7 +module load g2/3.1.1 +module load jasper/1.900.1 +module load png/1.2.44 +module load z/1.2.11 + + #Load from emc.nemspara module use -a /scratch1/NCEPDEV/nems/emc.nemspara/soft/modulefiles module load esmf/8.0.0 diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 2c26ea8931..27f2681c1b 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -1,15 +1,15 @@ #%Module###################################################################### ## -## FV3GFS prerequisites +## S2S prerequisites ## -module load intel/2018.4 -module load impi/2018.4 +module load intel/2018 +module load impi/2018 module load wgrib/2.0.8 #module load hpss/hpss #module load nco/4.7.0 -module load hdf5/1.10.5-parallel -module load netcdf/4.7.2-parallel +module load netcdf_parallel/4.7.4 +module load hdf5_parallel/1.10.6 module load gempak/7.5.1 @@ -20,9 +20,22 @@ module load prod_util/1.2.0 module load g2tmpl/1.6.0 module load crtm/2.3.0 +#from model module file +module load bacio/2.0.3 +module load ip/3.0.2 +module load nemsio/2.2.4 +module load sp/2.0.3 +module load w3emc/2.4.0 +module load w3nco/2.0.7 +module load g2/3.1.1 +module load jasper/1.900.2 +module load png/1.2.44 +module load z/1.2.6 + + #Load from GWV NCEPLIBS module use /apps/contrib/NCEPLIBS/lib/modulefiles -module load esmflocal/8_0_48b +module load esmflocal/8.0.0.para #module load netcdfp/4.7.4 module load contrib From 0a805e41aecbb9055952dba9ff4630d31ac3b4ee Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 29 May 2020 17:03:26 +0000 Subject: [PATCH 46/91] we don't want to cycle/have 4 runs per day so setting the cases to be just 1 IC --- workflow/cases/coupled_free_forecast.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index ee20304d1b..302c761662 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -5,14 +5,13 @@ case: settings: SDATE: 2013-04-01t00:00:00 - EDATE: 2013-04-02t00:00:00 + EDATE: 2013-04-01t00:00:00 cplflx: .true. print_esmf: .true. nems_temp: 'med_atm_ocn_ice' nems_temp_cold: 'medcold_atm_ocn_ice' mom6ic_prepared: .true. -# cplflx: .false. nsst: NST_MODEL: 0 From 1951f68438bb0e88b90b5c7563b5f944ca7fff25 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 29 May 2020 17:10:11 +0000 Subject: [PATCH 47/91] updating module files on hera --- modulefiles/module_base.hera | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modulefiles/module_base.hera b/modulefiles/module_base.hera index 0e24ced183..32d9c72d5a 100644 --- a/modulefiles/module_base.hera +++ b/modulefiles/module_base.hera @@ -7,6 +7,7 @@ module load intel/18.0.5.274 module load impi/2018.0.4 module load wgrib2/2.0.8 module load hpss/hpss +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles module load hdf5_parallel/1.10.6 module load netcdf_parallel/4.7.4 module load netcdf/4.7.0 @@ -16,7 +17,6 @@ module load gempak/7.4.2 module load ncl/6.5.0 #Load from official NCEPLIBS -module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles module load g2tmpl/1.6.0 module load grib_util/1.1.1 module load crtm/2.2.6 From e413a0d0b0125fb1ecf6264b5d1ddbe6b9938883 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 29 May 2020 15:42:49 -0500 Subject: [PATCH 48/91] updates to readme for orion --- README.md | 9 +++++++++ workflow/cases/coupled_free_forecast.yaml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 511c49b54c..cb7589882b 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,15 @@ mkdir -p $EXPROOT or ./setup_case.sh -p HERA ../cases/coupled_free_forecast.yaml test_3d + + +For Orion: +First make sure you have python loaded: +module load contrib +module load rocoto +module load intelpython3 +and then replace ORION with HERA in the commands above. + ``` This will create a experiment directory ($EXPERIMENT_DIRECTORY). In the current example, $EXPERIMENT_DIRECTORY=$EXPROOT/test_3d. diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 302c761662..674ab813a1 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -11,7 +11,7 @@ case: print_esmf: .true. nems_temp: 'med_atm_ocn_ice' nems_temp_cold: 'medcold_atm_ocn_ice' - mom6ic_prepared: .true. + mom6ic_prepared: .false. nsst: NST_MODEL: 0 From 57adda0f6d3716439f81e0122e555bdbfea77041 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 29 May 2020 23:33:46 +0000 Subject: [PATCH 49/91] mediator cold start succeeds on hera and forecast job starts post jobs for atmosphere are no longer triggered on cold starts --- ush/forecast_postdet.sh | 107 +++++++++++++++++++--------------- ush/parsing_namelists_CICE.sh | 2 +- 2 files changed, 61 insertions(+), 48 deletions(-) diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index aa4fff317e..5bb4116748 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -407,6 +407,9 @@ EOF #------------------------------------------------------------------ # make symbolic links to write forecast files directly in memdir cd $DATA + if [ $inistep = 'cold' ]; then + echo "Not making links of output for mediator cold start" + else if [ $QUILTING = ".true." -a $OUTPUT_GRID = "gaussian_grid" ]; then fhr=$FHMIN while [ $fhr -le $FHMAX ]; do @@ -435,6 +438,7 @@ EOF eval $NLN atmos_4xdaily.tile${n}.nc $memdir/atmos_4xdaily.tile${n}.nc done fi + fi } FV3_GFS_nml(){ @@ -465,6 +469,7 @@ data_out_GFS() # make symbolic links to write forecast files directly in memdir echo "SUB ${FUNCNAME[0]}: copying output data for FV3" #------------------------------------------------------------------ + if [ $SEND = "YES" ]; then # Copy model restart files if [ $CDUMP = "gdas" -a $restart_interval -gt 0 ]; then @@ -538,7 +543,7 @@ MOM6_postdet() $NCP -pf $FIX_DIR/fix_cpl/a${CASE}o${OCNRES}/grid_spec.nc $DATA/INPUT/ # Copy mediator restart files to RUNDIR - if [ $runtyp = 'continue' ]; then + if [ $inistep = 'restart' ]; then $NCP $ROTDIR/$CDUMP.$PDY/$cyc/mediator_* $DATA/ fi @@ -569,55 +574,57 @@ MOM6_out() fi [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT - if [ $runtyp = 'initial' ]; then + if [ $inistep = 'cold' ]; then cp $DATA/mediator_* $COMOUT/ status=$? exit $status - fi - - if [ $FHRGRP -eq 0 ]; then - fhrlst="anl" else - fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/\[/ /g; s/\]/ /g; s/f/ /g; s/,/ /g') - fi - # copy ocn files - for fhr in $fhrlst; do - export fhr=$fhr - if [[ 10#$fhr -ge 6 ]]; then - hh_inc_m=$((10#$FHOUT/2)) - hh_inc_o=$((10#$FHOUT )) + if [ $FHRGRP -eq 0 ]; then + fhrlst="anl" + else + fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/\[/ /g; s/\]/ /g; s/f/ /g; s/,/ /g') + fi + + # copy ocn files + for fhr in $fhrlst; do + export fhr=$fhr + if [[ 10#$fhr -ge 6 ]]; then + hh_inc_m=$((10#$FHOUT/2)) + hh_inc_o=$((10#$FHOUT )) # ------------------------------------------------------ # adjust the dates on the mom filenames and save # ------------------------------------------------------ - VDATE=$($NDATE $fhr $IDATE) - YYYY=`echo $VDATE | cut -c1-4` - MM=`echo $VDATE | cut -c5-6` - DD=`echo $VDATE | cut -c7-8` - HH=`echo $VDATE | cut -c9-10` - SS=$((10#$HH*3600)) - - m_date=$($NDATE -$hh_inc_m $VDATE) - p_date=$VDATE - - #TODO: Determine if this loop is needed - year=`echo $m_date | cut -c1-4` - month=`echo $m_date | cut -c5-6` - day=`echo $m_date | cut -c7-8` - hh=`echo $m_date | cut -c9-10` - - export ocnfile=ocn_${year}_${month}_${day}_${hh}.nc - - echo "cp -p $ocnfile $COMOUT/ocn$p_date.$ENSMEM.$IDATE.nc" - $NCP -p $ocnfile $COMOUT/ocn$p_date.$ENSMEM.$IDATE.nc - status=$? - [[ $status -ne 0 ]] && exit $status - fi - done - $NCP -p $DATA/ocn_daily*nc $COMOUT/ - $NCP -p $DATA/wavocn*nc $COMOUT/ #temporary for p4 - $NCP -p $DATA/INPUT/MOM_input $COMOUT/ + VDATE=$($NDATE $fhr $IDATE) + YYYY=`echo $VDATE | cut -c1-4` + MM=`echo $VDATE | cut -c5-6` + DD=`echo $VDATE | cut -c7-8` + HH=`echo $VDATE | cut -c9-10` + SS=$((10#$HH*3600)) + + m_date=$($NDATE -$hh_inc_m $VDATE) + p_date=$VDATE + + #TODO: Determine if this loop is needed + year=`echo $m_date | cut -c1-4` + month=`echo $m_date | cut -c5-6` + day=`echo $m_date | cut -c7-8` + hh=`echo $m_date | cut -c9-10` + + export ocnfile=ocn_${year}_${month}_${day}_${hh}.nc + + echo "$NCP -p $ocnfile $COMOUT/ocn$p_date.$ENSMEM.$IDATE.nc" + $NCP -p $ocnfile $COMOUT/ocn$p_date.$ENSMEM.$IDATE.nc + status=$? + [[ $status -ne 0 ]] && exit $status + fi + + done + $NCP -p $DATA/ocn_daily*nc $COMOUT/ + $NCP -p $DATA/wavocn*nc $COMOUT/ #temporary for p4 + $NCP -p $DATA/INPUT/MOM_input $COMOUT/ + fi } CICE_postdet() @@ -632,10 +639,13 @@ CICE_postdet() npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work histfreq_n=${histfreq_n:-6} - restart_interval=${restart_interval:-3024000} # restart write interval in seconds, default 35 days - dumpfreq_n=${dumpfreq_n:-"${restart_interval}"} # restart write interval in seconds - dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" - + if [ $inistep = 'cold' ]; then + dumpfreq_n=${dumpfreq_n:-3600} # restart write interval in seconds, default 1 hour + dumpfreq="s" + else + dumpfreq_n=${dumpfreq_n:-3024000} # restart write interval in seconds, default 35 days + dumpfreq=${dumpfreq:-"s"} # "s" or "d" or "m" for restarts at intervals of "seconds", "days" or "months" + fi cice_hist_avg=${cice_hist_avg:-".true."} FRAZIL_FWSALT=${FRAZIL_FWSALT:-".true."} @@ -646,6 +656,7 @@ CICE_postdet() # -- if false, re-initialize level ponds to zero (if runtype=initial or continue) #TODO: Determine the proper way to determine if it's a 'hot start' or not + #note this is not mediator cold start or not #if [ hotstart ]; then # #continuing run "hot start" # RUNTYPE='continue' @@ -691,6 +702,9 @@ CICE_nml() CICE_out() { echo "SUB ${FUNCNAME[0]}: Copying output data for CICE" + if [ $inistep = 'cold' ]; then + echo "mediator cold start, no copying of data for CICE" + else export ENSMEM=${ENSMEM:-01} export IDATE=$CDATE $NCP -p $DATA/ice_in $COMOUT/ @@ -718,8 +732,6 @@ CICE_out() HH=`echo $VDATE | cut -c9-10` SS=$((10#$HH*3600)) - # DDATE=$($NDATE -$FHOUT $VDATE) - if [[ 10#$fhr -eq 0 ]]; then $NCP -p $DATA/history/iceh_ic.${YYYY0}-${MM0}-${DD0}-`printf "%5.5d" ${SS0}`.nc $COMOUT/iceic$VDATE.$ENSMEM.$IDATE.nc status=$? @@ -732,6 +744,7 @@ CICE_out() fi done + fi } GSD_in() diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index 270a007229..88de147a85 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -11,7 +11,7 @@ cat > ice_in < Date: Mon, 1 Jun 2020 21:51:29 +0000 Subject: [PATCH 50/91] adding ncks, updating ocean post, some fixes for tar files --- jobs/rocoto/arch.sh | 11 +--------- jobs/rocoto/ocnpost.sh | 30 +++++++++++++++++---------- ush/forecast_postdet.sh | 2 +- workflow/defaults/places.yaml | 2 ++ workflow/platforms/_sandbox.yaml | 2 ++ workflow/platforms/gaea.yaml | 4 +++- workflow/platforms/hera.yaml | 3 +++ workflow/platforms/jet.yaml | 2 ++ workflow/platforms/orion.yaml | 2 ++ workflow/platforms/wcoss_cray.yaml | 2 ++ workflow/platforms/wcoss_dell_p3.yaml | 2 ++ workflow/schema/places.yaml | 2 ++ 12 files changed, 41 insertions(+), 23 deletions(-) diff --git a/jobs/rocoto/arch.sh b/jobs/rocoto/arch.sh index 7205cfb81c..5570679fa9 100755 --- a/jobs/rocoto/arch.sh +++ b/jobs/rocoto/arch.sh @@ -161,9 +161,6 @@ if [ $cplflx = ".true." ]; then echo `date` echo "gzip done !" for targrp in ocn ocn_2D ocn_3D ocn_xsect ice ocn_daily log wavocn wave; do - htar -P -cvf $ATARDIR/$CDATE/${targrp}_c384.tar `cat $ARCH_LIST/${targrp}.txt` - done - for targrp in gfs_flux_1p00 gfs_pgrb2b; do htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` done fi @@ -175,7 +172,7 @@ if [ $CDUMP = "gfs" ]; then htar -P -cvf $ATARDIR/$CDATE/gfs_pgrb2_0p25.tar `cat $ARCH_LIST/gfsa.txt` htar -P -cvf $ATARDIR/$CDATE/gfs_pgrb2_1p00.tar `cat $ARCH_LIST/gfsb.txt` - for targrp in gfs_nemsioa gfs_nemsiob gfs_pgrb2_1p00 gfs_pgrb2_0p25 gfs_pgrb2b_1p00 gfs_pgrb2b_0p25; do + for targrp in gfs_nemsioa gfs_nemsiob gfs_flux gfs_flux_1p00 gfs_pgrb2_1p00 gfs_pgrb2_0p25 gfs_pgrb2b_1p00 gfs_pgrb2b_0p25; do htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` status=$? if [ $status -ne 0 -a $CDATE -ge $firstday ]; then @@ -184,12 +181,6 @@ if [ $CDUMP = "gfs" ]; then fi done - htar -P -cvf $ATARDIR/$CDATE/gfs_flux_c384.tar `cat $ARCH_LIST/gfs_flux.txt` - - for targrp in gfs_flux_1p00; do - htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` - done - else #leave as is #for targrp in gfsa gfsb - NOTE - do not check htar error status diff --git a/jobs/rocoto/ocnpost.sh b/jobs/rocoto/ocnpost.sh index ce98d4b25b..d4a75e00af 100755 --- a/jobs/rocoto/ocnpost.sh +++ b/jobs/rocoto/ocnpost.sh @@ -107,18 +107,27 @@ for fhr in $fhrlst; do # The regrid scripts use CDATE for the current day, restore it to IDATE afterwards export CDATE=$VDATE cd $DATA -if [ $fhr -gt 0 ]; then - export MOM6REGRID=$UGCSsrc/mom6_regrid_025 - $MOM6REGRID/run_regrid.sh - status=$? - [[ $status -ne 0 ]] && exit $status + if [ $fhr -gt 0 ]; then + export MOM6REGRID=$UGCSsrc/mom6_regrid_025 + $MOM6REGRID/run_regrid.sh + status=$? + [[ $status -ne 0 ]] && exit $status - # Convert the netcdf files to grib2 - export executable=$MOM6REGRID/exec/reg2grb2.x - $MOM6REGRID/run_reg2grb2.sh + # Convert the netcdf files to grib2 + export executable=$MOM6REGRID/exec/reg2grb2.x + $MOM6REGRID/run_reg2grb2.sh + status=$? + [[ $status -ne 0 ]] && exit $status + fi + + #break up ocn netcdf into multiple files: + $ncks -x -v vo,uo,so,temp $COMOUT/ocn_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc + $ncks -x -v Heat_PmE,LW,LwLatSens,MLD_003,MLD_0125,SSH,SSS,SST,SSU,SSV,SW,cos_rot,ePBL,evap,fprec,frazil,latent,lprec,lrunoff,sensible,sin_rot,speed,taux,tauy,wet_c,wet_u,wet_v $COMOUT/ocn_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc + $ncks -v temp -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc + $ncks -v uo -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc status=$? [[ $status -ne 0 ]] && exit $status -fi + done # Restore CDATE to what is expected @@ -129,8 +138,7 @@ done [[ $status -ne 0 ]] && exit $status # clean up working folder -#rm -Rf $DATA -#BL2019 +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATA ; fi ############################################################### # Exit out cleanly exit 0 diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 5bb4116748..8bf2ff4c24 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -606,7 +606,6 @@ MOM6_out() m_date=$($NDATE -$hh_inc_m $VDATE) p_date=$VDATE - #TODO: Determine if this loop is needed year=`echo $m_date | cut -c1-4` month=`echo $m_date | cut -c5-6` day=`echo $m_date | cut -c7-8` @@ -618,6 +617,7 @@ MOM6_out() $NCP -p $ocnfile $COMOUT/ocn$p_date.$ENSMEM.$IDATE.nc status=$? [[ $status -ne 0 ]] && exit $status + fi done diff --git a/workflow/defaults/places.yaml b/workflow/defaults/places.yaml index 2bc612dcf4..36fc127668 100644 --- a/workflow/defaults/places.yaml +++ b/workflow/defaults/places.yaml @@ -21,6 +21,8 @@ default_places: &default_places # SHORT_TERM_TEMP: !error GOT HERE # LONG_TERM_TEMP: !error GOT HERE TOO + ncks: !calc doc.platform.ncks + NOSCRUB: !FirstTrue - when: !calc doc.platform.get('NOSCRUB_DIR','') do: !calc doc.platform.NOSCRUB_DIR diff --git a/workflow/platforms/_sandbox.yaml b/workflow/platforms/_sandbox.yaml index a0c65372b6..b2f1e8ac88 100644 --- a/workflow/platforms/_sandbox.yaml +++ b/workflow/platforms/_sandbox.yaml @@ -59,6 +59,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/path/to/base/dir/of/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/path/to/ncks" # config_base_extras - Additional configuration data to put in the # config.base file diff --git a/workflow/platforms/gaea.yaml b/workflow/platforms/gaea.yaml index 9e23ba6807..6ce65faa93 100644 --- a/workflow/platforms/gaea.yaml +++ b/workflow/platforms/gaea.yaml @@ -53,7 +53,9 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/path/to/base/dir/of/IC" - + #ncks - NCO netcdf operator used in ocean post + ncks: "/path/to/ncks" + # rocoto_platform_vars - additional variables sent to the rocoto xml # file for each job to set platform-specific batch card settings. rocoto_platform_vars: | diff --git a/workflow/platforms/hera.yaml b/workflow/platforms/hera.yaml index ae83b5ea4f..e21b2202f6 100644 --- a/workflow/platforms/hera.yaml +++ b/workflow/platforms/hera.yaml @@ -28,6 +28,7 @@ platform: !Platform NWPROD: "/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod" RTMFIX: "/scratch1/NCEPDEV/global/glopara/crtm/2.2.3/fix_update/" BASE_SVN: "/scratch1/NCEPDEV/global/glopara/svn" + ncks: " # BASE_GIT - a directory maintained by emc global model developers # that contains recent versions of source code and executables for @@ -37,6 +38,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/scratch2/NCEPDEV/climate/climpara/S2S/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/apps/nco/4.9.1/intel/18.0.5.274/bin/ncks" config_base_extras: !expand | echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" diff --git a/workflow/platforms/jet.yaml b/workflow/platforms/jet.yaml index 33ac41b1da..d65689517d 100644 --- a/workflow/platforms/jet.yaml +++ b/workflow/platforms/jet.yaml @@ -53,6 +53,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/path/to/base/dir/of/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/path/to/ncks" # config_base_extras - Additional configuration data to put in the # config.base file diff --git a/workflow/platforms/orion.yaml b/workflow/platforms/orion.yaml index a339cec5c5..7804016012 100644 --- a/workflow/platforms/orion.yaml +++ b/workflow/platforms/orion.yaml @@ -37,6 +37,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/work/noaa/marine/jmeixner/tempFixICdir/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/apps/intel-2020/nco-4.8.1/bin/ncks" config_base_extras: !expand | echo "place holder for NWPROD and associated utilities, all except POSTGRB2TBL are going through load_gfs_modules.sh" diff --git a/workflow/platforms/wcoss_cray.yaml b/workflow/platforms/wcoss_cray.yaml index 0b36987d1f..ed0cd9644f 100644 --- a/workflow/platforms/wcoss_cray.yaml +++ b/workflow/platforms/wcoss_cray.yaml @@ -59,6 +59,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/path/to/base/dir/of/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/path/to/ncks" # config_base_extras - Additional configuration data to put in the # config.base file diff --git a/workflow/platforms/wcoss_dell_p3.yaml b/workflow/platforms/wcoss_dell_p3.yaml index 840b042933..e37ecd8e5f 100644 --- a/workflow/platforms/wcoss_dell_p3.yaml +++ b/workflow/platforms/wcoss_dell_p3.yaml @@ -59,6 +59,8 @@ platform: !Platform #BASE_CPLIC - is the base directory of ICs for coupled s2s runs BASE_CPLIC: "/path/to/base/dir/of/IC" + #ncks - NCO netcdf operator used in ocean post + ncks: "/path/to/ncks" # config_base_extras - Additional configuration data to put in the # config.base file diff --git a/workflow/schema/places.yaml b/workflow/schema/places.yaml index a19ba9ade3..07a5a3567d 100644 --- a/workflow/schema/places.yaml +++ b/workflow/schema/places.yaml @@ -46,6 +46,8 @@ places_schema: &places_schema !Template type: string BASE_CPLIC: type: string + ncks: + type: string ics_from: type: string From de2df04b71575ed1f9a0f6a74f24c75add89e547 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Mon, 1 Jun 2020 22:36:29 +0000 Subject: [PATCH 51/91] updates for tar files and do not keep data --- ush/hpssarch_gen.sh | 4 ---- workflow/cases/coupled_free_forecast.yaml | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 424ed735a1..1355bb03f2 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -115,10 +115,6 @@ fi fh=0 while [ $fh -le $FHMAX_GFS ]; do fhr=$(printf %03i $fh) - echo "${dirname}${head}pgrb2b.0p25.f${fhr} " >>gfs_pgrb2b.txt - echo "${dirname}${head}pgrb2b.0p25.f${fhr}.idx " >>gfs_pgrb2b.txt - echo "${dirname}${head}pgrb2b.0p50.f${fhr} " >>gfs_pgrb2b.txt - echo "${dirname}${head}pgrb2b.0p50.f${fhr}.idx " >>gfs_pgrb2b.txt if [ $cplflx = ".true." ]; then echo "${dirname}${head}pgrb2b.0p25.f${fhr} " >>gfs_pgrb2b_0p25.txt diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 674ab813a1..c1e25d9cdf 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -12,6 +12,7 @@ case: nems_temp: 'med_atm_ocn_ice' nems_temp_cold: 'medcold_atm_ocn_ice' mom6ic_prepared: .false. + KEEPDATA: No nsst: NST_MODEL: 0 From 5de48cd06bad55bb679b17d7a3c988693682b37b Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Mon, 1 Jun 2020 22:47:02 +0000 Subject: [PATCH 52/91] fix typo --- workflow/platforms/hera.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/platforms/hera.yaml b/workflow/platforms/hera.yaml index e21b2202f6..8f0f2245b0 100644 --- a/workflow/platforms/hera.yaml +++ b/workflow/platforms/hera.yaml @@ -28,7 +28,6 @@ platform: !Platform NWPROD: "/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod" RTMFIX: "/scratch1/NCEPDEV/global/glopara/crtm/2.2.3/fix_update/" BASE_SVN: "/scratch1/NCEPDEV/global/glopara/svn" - ncks: " # BASE_GIT - a directory maintained by emc global model developers # that contains recent versions of source code and executables for From dab6761c4dafc77e11b9ab4fddb932ca4bee7d4e Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Mon, 1 Jun 2020 19:37:57 -0500 Subject: [PATCH 53/91] updating module_base.orion that allows cold start to run. Not sure if other jobs will now fail though or if what is in your .bashrc file will effect the success/failure of the run. --- modulefiles/module_base.orion | 55 +++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 27f2681c1b..26d1f48300 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -1,26 +1,24 @@ #%Module###################################################################### ## -## S2S prerequisites +## NEMS FV3 Prerequisites: Orion/Intel + +## +## load contrib environment +## load slurm utils (arbitrary.pl layout.pl) ## +module load contrib noaatools +## +## load programming environment +## this typically includes compiler, MPI and job scheduler +## module load intel/2018 module load impi/2018 -module load wgrib/2.0.8 -#module load hpss/hpss -#module load nco/4.7.0 -module load netcdf_parallel/4.7.4 -module load hdf5_parallel/1.10.6 - -module load gempak/7.5.1 -#Load from official NCEPLIBS +## +## NCEP libraries (temporary version to match the CCPP requirements) +## module use /apps/contrib/NCEPLIBS/orion/modulefiles -module load grib_util/1.2.0 -module load prod_util/1.2.0 -module load g2tmpl/1.6.0 -module load crtm/2.3.0 - -#from model module file module load bacio/2.0.3 module load ip/3.0.2 module load nemsio/2.2.4 @@ -28,20 +26,27 @@ module load sp/2.0.3 module load w3emc/2.4.0 module load w3nco/2.0.7 module load g2/3.1.1 +module load g2tmpl/1.6.0 +module load crtm/2.3.0 module load jasper/1.900.2 module load png/1.2.44 module load z/1.2.6 - -#Load from GWV NCEPLIBS +module load prod_util/1.2.0 +## +## load ESMF library for above compiler / MPI combination +## use pre-compiled EMSF library for above compiler / MPI combination +## module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load netcdfp/4.7.4 module load esmflocal/8.0.0.para -#module load netcdfp/4.7.4 - -module load contrib -module load rocoto/1.3.1 -module load slurm/19.05.3-2 - -# python -module load python/3.7.5 +module load post-intel-sandybridge/8.0.5 +## +### load cmake +### +module load cmake/3.15.4 +setenv CMAKE_C_COMPILER mpiicc +setenv CMAKE_CXX_COMPILER mpiicpc +setenv CMAKE_Fortran_COMPILER mpiifort +setenv CMAKE_Platform orion.intel From e5c423f12cac0e018988a429db38f8bffea4c7c7 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 2 Jun 2020 10:27:08 -0500 Subject: [PATCH 54/91] both forecast and atm post seem to be running okay on orion --- modulefiles/module_base.orion | 5 +++++ workflow/cases/coupled_free_forecast.yaml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 26d1f48300..c053ffa49c 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -42,6 +42,11 @@ module load netcdfp/4.7.4 module load esmflocal/8.0.0.para module load post-intel-sandybridge/8.0.5 + +module load netcdf_parallel/4.7.4 +module load hdf5_parallel/1.10.6 +module load wgrib/2.0.8 +module load grib_util/1.2.0 ## ### load cmake ### diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index c1e25d9cdf..fe852cf499 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -12,7 +12,7 @@ case: nems_temp: 'med_atm_ocn_ice' nems_temp_cold: 'medcold_atm_ocn_ice' mom6ic_prepared: .false. - KEEPDATA: No + KEEPDATA: NO nsst: NST_MODEL: 0 From c788fad74d06e3ed0beeded12fc7a53173fddc70 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 2 Jun 2020 15:46:26 -0500 Subject: [PATCH 55/91] wave configuration files --- jobs/JWAVE_INIT | 61 +++++++ jobs/JWAVE_POST_SBS | 75 ++++++++ jobs/JWAVE_PREP | 63 +++++++ ush/parsing_namelists_FV3.sh | 9 +- workflow/cases/coupled_free_forecast_s2s.yaml | 53 ++++++ workflow/config/base.yaml | 4 + workflow/config/fcst.yaml | 4 +- workflow/config/wave.yaml | 168 ++++++++++++++++++ workflow/config/waveprep.yaml | 21 +++ workflow/defaults/settings.yaml | 2 + 10 files changed, 458 insertions(+), 2 deletions(-) create mode 100755 jobs/JWAVE_INIT create mode 100755 jobs/JWAVE_POST_SBS create mode 100755 jobs/JWAVE_PREP create mode 100644 workflow/cases/coupled_free_forecast_s2s.yaml create mode 100644 workflow/config/wave.yaml create mode 100644 workflow/config/waveprep.yaml diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT new file mode 100755 index 0000000000..c72bede0d6 --- /dev/null +++ b/jobs/JWAVE_INIT @@ -0,0 +1,61 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveinit" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveinit +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +sh ./PDY + +export pgmout=OUTPUT.$$ + +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT/rundata +fi + +# Execute the Script +$HOMEwave/scripts/exwave_init.sh + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS new file mode 100755 index 0000000000..c70570d15e --- /dev/null +++ b/jobs/JWAVE_POST_SBS @@ -0,0 +1,75 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave wavepostsbs" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wavepostsbs +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +mkdir -p $DATA +cd $DATA + +# Set PDY +setpdy.sh +sh ./PDY + +export pgmout=OUTPUT.$$ + +mkdir -p $COMOUT/gridded +mkdir -p $COMOUT/station +mkdir -p $COMOUT/stats + +env | sort + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +export membTAG='p' +if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi +export membTAG +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} + +export CFP_VERBOSE=1 + +# Execute the Script +$HOMEwave/scripts/exwave_post_sbs.sh +err=$? +if [ $err -ne 0 ]; then + msg="FATAL ERROR: ex-script of GWES_POST failed!" +else + msg="$job completed normally!" +fi +postmsg "$jlogfile" "$msg" + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP new file mode 100755 index 0000000000..930244bac0 --- /dev/null +++ b/jobs/JWAVE_PREP @@ -0,0 +1,63 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveprep" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveprep +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +sh ./PDY +# Set rtofs PDY +export RPDY=$PDY + +export pgmout=OUTPUT.$$ + +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT +fi + +# Execute the Script +$HOMEwave/scripts/exwave_prep.sh + +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date + diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 709a643589..a6a19293bb 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -216,6 +216,13 @@ if [ $CCPP_SUITE = "FV3_GSD_v0" ]; then bl_mynn_tkeadvect=${bl_mynn_tkeadvect:-".true."} ! In config.fcst bl_mynn_edmf_mom=${bl_mynn_edmf_mom:-"1"} ! In config.fcst EOF +elif [ $CCPP_SUITE = "S2S" ]; then + cat >> input.nml << EOF + oz_phys = ${oz_phys} ! In config.fcst + oz_phys_2015 = ${oz_phys_2015} ! In config.fcst + cplwav = ${cplwav} ! CROW configured + cplwav2atm = ${cplwav2atm} ! CROW configured +EOF fi cat >> input.nml <> input.nml <> input.nml << EOF reiflag = ${reiflag:-"1"} EOF diff --git a/workflow/cases/coupled_free_forecast_s2s.yaml b/workflow/cases/coupled_free_forecast_s2s.yaml new file mode 100644 index 0000000000..d0c8658a2e --- /dev/null +++ b/workflow/cases/coupled_free_forecast_s2s.yaml @@ -0,0 +1,53 @@ +case: + places: + workflow_file: layout/free_forecast_gfs.yaml + MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS + + settings: + SDATE: 2013-04-01t00:00:00 + EDATE: 2013-04-02t00:00:00 + + cplwav: .false. + cplwav2atm: .false. + cplflx: .true. + print_esmf: .true. + nems_temp: 'med_atm_ocn_ice' + nems_temp_cold: 'medcold_atm_ocn_ice' + mom6ic_prepared: .true. +# cplflx: .false. + + nsst: + NST_MODEL: 0 + + output_settings: + OCN_INTERVAL: 24 + FHOUT_GFS: 6 + FHMIN_GFS: 0 + FHMAX_GFS: 840 + FHMAX_HF_GFS: 0 + FHOUT_HF_GFS: -1 + + fv3_gfs_settings: + CASE: C384 + LEVS: 65 + DELTIM: 450 + SEEDLET: 10 + CCPP_SUITE: S2S + nst_anl: no + DO_SKEB: false + DO_SHUM: false + DO_SPPT: false + layout: + x: 6 + y: 8 + nth: 2 + WGRP: 1 + WGRP_NTASKS: 24 + WRTIOBUF: "32M" + OCNPETS: 120 + ICEPETS: 48 + cdmbgwd: "1.0,1.2" + + post: + downset: 2 + GOESF: no diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index 85464783c2..050b9c1b0e 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -10,6 +10,8 @@ config_base: do: .true. - when: !calc doc.settings.cplice==".true." do: .true. + - when: !calc doc.settings.cplwav==".true." + do: .true. - otherwise: .false. content: !expand | #!/bin/ksh -x @@ -29,6 +31,8 @@ config_base: export cpl="{cpl}" export cplflx="{doc.settings.cplflx}" export cplice="{doc.settings.cplice}" + export cplwav="{doc.settings.cplwav}" + export cplwav2atm="{doc.settings.cplwav2atm}" export print_esmf="{doc.settings.print_esmf}" export nems_temp="{doc.settings.nems_temp}" diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 8be2a9239f..239f8f11d2 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -5,7 +5,9 @@ config_fcst: filename: config.fcst FCSTEXEC: !FirstTrue - - when: !calc doc.settings.cplflx==".true." + - when: !calc doc.settings.cplflx and doc.settings.cplwav + do: "nems_fv3_mom6_cice5_ww3.x" + - when: !calc doc.settings.cplflx and not doc.settings.cplwav do: "nems_fv3_mom6_cice5.x" - otherwise: "global_fv3gfs.x" more_exports_for_microphys: !FirstTrue diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml new file mode 100644 index 0000000000..04c29adcd2 --- /dev/null +++ b/workflow/config/wave.yaml @@ -0,0 +1,168 @@ +config_wave: + filename: config.wave + content: !expand | + echo "BEGIN: config.wave" + export wave_sys_ver=v1.0.0 + + export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + export COMPONENTRSTwave=${COMPONENTRSTwave:-gdaswave} + export HOMEwave=${HOMEwave:-${HOMEgfs}} + export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} + export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} + export DATA=${DATA:-${DATAROOT:?}/${jobid}} + + # Grids for wave model + export waveGRD='glo_10m aoc_9km ant_9km' + export waveGRDN='1 2 3' # gridnumber for ww3_multi + export waveGRDG='10 20 30' # gridgroup for ww3_multi + + # ESMF input grid + export waveesmfGRD='glox_10m' # input grid + + # Grids for output fields + export waveuoutpGRD=points + export waveinterpGRD='glo_15mxt' # Grids that need to be interpolated from native + # in POST will generate grib unless gribOK not set + export wavesbsGRD='' # side-by-side grids generated as wave model runs, writes to com + export wavepostGRD='glo_10m aoc_9km ant_9km' # Native grids that will be post-processed (grib2) + + if [ "$CDUMP" = "gdas" ] + then + export FHMAX_WAV=${FHMAX_WAV:-9} + fi + export WAVHINDH=${WAVHINDH:-0} + export FHMIN_WAV=${FHMIN_WAV:-0} + export FHOUT_WAV=${FHOUT_WAV:-3} + export FHMAX_WAV=${FHMAX_WAV:-384} + export FHMAX_HF_WAV=${FHMAX_HF_WAV:-120} + export FHOUT_HF_WAV=${FHOUT_HF_WAV:-1} + + # Output stride + export WAV_WND_HOUR_INC=1 # This value should match with the one used in + # # the wind update script + # gridded and point output rate + export DTFLD_WAV=`expr $FHOUT_HF_WAV \* 3600` + export DTPNT_WAV=3600 + export FHINCP_WAV=`expr $DTPNT_WAV / 3600` + + # Grids for input fields + export WAVEICE_DID=sice + export WAVEICE_FID=icean_5m + export WAVECUR_DID=rtofs + export WAVECUR_FID=rtofs_5m + export WAVEWND_DID= + export WAVEWND_FID= + + # Selected output parameters (gridded) + export OUTPARS_WAV="WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR" + + # Options for point output (switch on/off boundary point output) + # export DOIBP_WAV='NO' + # + # # Intake currents settings + export WAV_CUR_DT=${WAV_CUR_DT:-3} + export WAV_CUR_HF_DT=${WAV_CUR_HF_DT:-1} + export WAV_CUR_HF_FH=${WAV_CUR_HF_FH:-72} + export WAV_CUR_CDO_SMOOTH="NO" + + # Number of cycles to look back for restart files + export nback= + + if [ "$CDUMP" = "gdas" ] + then + WAVNCYC=4 + WAVHCYC=6 + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-48} # RTOFS forecasts only out to 8 days + elif [ ${gfs_cyc} -ne 0 ] + then + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days + WAVHCYC=`expr 24 / ${gfs_cyc}` + else + WAVHCYC=0 + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days + fi + export FHMAX_WAV_CUR WAVHCYC WAVNCYC + + export RSTTYPE_WAV='T' # generate second tier of restart files + export DT_1_RST_WAV=10800 # time between restart files, set to DTRST=1 for a single restart file + export DT_2_RST_WAV=43200 # restart stride for checkpointing restart + export RSTIOFF_WAV=0 # first restart file offset relative to model start + + export RUNMEM=${RUNMEM:--1} + + if [ $RUNMEM = -1 ]; then + # No suffix added to model ID in case of deterministic run + export waveMEMB= + else + # Extract member number only + export waveMEMB=`echo $RUNMEM | grep -o '..$'` + fi + # + # Determine if wave component needs input and/or is coupled + export WW3ATMINP='CPL' + export WW3ICEINP='YES' + export WW3CURINP='YES' + # + if [ "${WW3ICEINP}" = "YES" ]; then + export WAVICEFILE=${CDUMP}.t${cyc}z.seaice.5min.grib2 + fi + # + # Determine if input is from perturbed ensemble (T) or single input file (F) for all members + export WW3ATMIENS='F' + export WW3ICEIENS='F' + export WW3CURIENS='F' + # + + # Set resources to propagate NTASKS across cfp call + export NTASKS=${NTASKS:-${npe_node_waveinit}} + # + # # Path to HOME Directory + export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3} + export EXECwave=${EXECwave:-$HOMEwave/exec} + export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} + export PARMwave=${PARMwave:-$HOMEwave/parm/wave} + export USHwave=${USHwave:-$HOMEwave/ush} + export EXECcode=${EXECcode:-$CODEwave/exec} + # + # # Set COM Paths and GETGES environment + export COMINwave=${COMINwave:-${ROTDIR:?}} + export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} + export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} + export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} + export COMINice=${COMINice:-${COMROOTp2}/omb/prod} + export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} + export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + # + export MP_PULSE=0 + + if [ $RUN_ENVIR = "nco" ]; then + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_WND=${COMIN_WAV_WND:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.${RPDY} + if [ ! -d $COMIN_WAV_CUR ]; then + export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8` + export COMIN_WAV_CUR=$(compath.py ${WAVECUR_DID}/prod)/${WAVECUR_DID}.${RPDY} + fi + else + if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8`; fi + if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} + fi + $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} + export COMIN_WAV_ICE=${COMIN_OBS} + export COMIN_WAV_WND=${COMIN_OBS} + export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${RPDY} + fi + + export wavelog=${COMOUTwave}/wave.log + + # Set mpi serial command + export wavempexec=${wavempexec:-"mpirun -n"} + export wave_mpmd=${wave_mpmd:-"cfp"} + # + # # Set wave model ID tag to include member number + # # if ensemble; waveMEMB var empty in deterministic + export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} + # + echo "END: config.wave" diff --git a/workflow/config/waveprep.yaml b/workflow/config/waveprep.yaml new file mode 100644 index 0000000000..6258070bfd --- /dev/null +++ b/workflow/config/waveprep.yaml @@ -0,0 +1,21 @@ +config_waveprep: + filename: config.waveprep + content: !expand | + + echo "BEGIN: config.waveprep" + + export sigMODE=${sigMODE:-prep} + + export HOUR_INC=3 # This value should match with the one used in + export GOFILETYPE=1 + export POFILETYPE=1 + + export FUNIPNT='T' + # Unified output server type (see ww3_multi.inp in WW3 repo) + export PNTSRV='1' + # # Flag for dedicated output process for unified points + export FPNTPROC='T' + # # Flag for grids sharing dedicated output processes + export FGRDPROC='F' + # + echo "END: config.waveprep" diff --git a/workflow/defaults/settings.yaml b/workflow/defaults/settings.yaml index 8fe93d1eed..21d0df2a62 100644 --- a/workflow/defaults/settings.yaml +++ b/workflow/defaults/settings.yaml @@ -44,6 +44,8 @@ default_settings: &default_settings cplflx: .false. cplice: !calc cplflx + cplwav: .false. + cplwav2atm: .false. cpl: .false. mom6ic_prepared: .false. # If set True, User need to manually copy mom6ic files into ROTIDR From a0f1946b8e6254dc46976a51852a38d69643c956 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 2 Jun 2020 15:52:39 -0500 Subject: [PATCH 56/91] wave configuration update --- workflow/config/wave.yaml | 4 ++-- workflow/defaults/case.yaml | 7 +++++++ workflow/defaults/wave.yaml | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 workflow/defaults/wave.yaml diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 04c29adcd2..463e1f3bbc 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -12,8 +12,8 @@ config_wave: export DATA=${DATA:-${DATAROOT:?}/${jobid}} # Grids for wave model - export waveGRD='glo_10m aoc_9km ant_9km' - export waveGRDN='1 2 3' # gridnumber for ww3_multi + export waveGRD='{doc.wave_settings.waveGRD}' + export waveGRDN='{doc.wave_settings.waveGRDN}' # gridnumber for ww3_multi export waveGRDG='10 20 30' # gridgroup for ww3_multi # ESMF input grid diff --git a/workflow/defaults/case.yaml b/workflow/defaults/case.yaml index e06cedfe0c..ea2e5bfd98 100644 --- a/workflow/defaults/case.yaml +++ b/workflow/defaults/case.yaml @@ -17,6 +17,13 @@ ice_settings: !Immediate - !calc doc.ice_defaults - !calc doc.case.get('ice_settings',{}) +wave_settings: !Immediate + - !MergeMapping + - CDUMP: gfs + Template: *wave_settings_template + - !calc doc.wave_defaults + - !calc doc.case.get('wave_settings',{}) + schedvar: !Immediate - !MergeMapping - !calc doc.case.get('schedvar',{}) diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml new file mode 100644 index 0000000000..a88d2d54b0 --- /dev/null +++ b/workflow/defaults/wave.yaml @@ -0,0 +1,4 @@ +wave_defaults: &wave_defaults + waveGRD: 'glo_10m aoc_9km ant_9km' + waveGRDN: '1 2 3' + waveGRDG: '10 20 30' From 0889ce7ff0d94f881f0c0a1568e364e18cf1ec0d Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 2 Jun 2020 17:43:59 -0500 Subject: [PATCH 57/91] fix module-setup.sh.inc script, which causes module purge unsuccessful --- modulefiles/module-setup.sh.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modulefiles/module-setup.sh.inc b/modulefiles/module-setup.sh.inc index f4aad8b9f1..9d97102636 100644 --- a/modulefiles/module-setup.sh.inc +++ b/modulefiles/module-setup.sh.inc @@ -28,10 +28,10 @@ elif [[ -d /scratch1 ]] ; then source /apps/lmod/lmod/init/$__ms_shell fi module purge -elif [[ -d /scratch3 ]] ; then - # We are on NOAA Theia +elif [[ -d /work ]] ; then + # We are on MSU Orion if ( ! eval module help > /dev/null 2>&1 ) ; then - source /apps/lmod/lmod/init/$__ms_shell + source /apps/lmod/init/$__ms_shell fi module purge elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then @@ -83,7 +83,7 @@ elif [[ -d /lustre && -d /ncrc ]] ; then __ms_source_etc_profile=no fi module purge -# clean up after purge + # clean up after purge unset _LMFILES_ unset _LMFILES_000 unset _LMFILES_001 From 2cb73824308b95387529b004047495166e0e760e Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 2 Jun 2020 21:34:10 -0500 Subject: [PATCH 58/91] 1, Moved some of the variables into configuration system from JWAVE scripts 2, Wave configuration system built out 3, Modularized scripts updated to accomodate wave variables --- jobs/JWAVE_INIT | 10 +- jobs/JWAVE_POST_SBS | 8 ++ jobs/JWAVE_PREP | 31 ++++- ush/nems.configure.med_atm_ocn_ice_wav.IN | 4 +- ush/nems_configure.sh | 4 + workflow/cases/coupled_free_forecast_s2s.yaml | 12 +- workflow/config/fcst.yaml | 1 + workflow/config/wave.yaml | 111 ++++++++---------- workflow/config/waveprep.yaml | 18 ++- workflow/defaults/case.yaml | 1 + workflow/defaults/default_resources.yaml | 4 +- workflow/defaults/fv3_gfs.yaml | 4 + workflow/defaults/output_settings.yaml | 14 +++ workflow/defaults/places.yaml | 2 + workflow/defaults/wave.yaml | 6 + workflow/layout/free_forecast_gfs.yaml | 21 +++- workflow/schema/wave.yaml | 9 ++ 17 files changed, 178 insertions(+), 82 deletions(-) create mode 100644 workflow/schema/wave.yaml diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index aa1820852d..fe05e9424b 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -7,7 +7,7 @@ set -x -e ############################# # Source relevant config files ############################# -configs="base wave waveinit" +configs="base wave" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do @@ -27,9 +27,12 @@ status=$? export NET=${NET:-gfs} export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + # Add default errchk = err_chk export errchk=${errchk:-err_chk} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA @@ -42,6 +45,11 @@ sh ./PDY export pgmout=OUTPUT.$$ +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} + [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT if [ $SENDCOM = YES ]; then diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS index c70570d15e..59cae40eef 100755 --- a/jobs/JWAVE_POST_SBS +++ b/jobs/JWAVE_POST_SBS @@ -27,9 +27,12 @@ status=$? export NET=${NET:-gfs} export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + # Add default errchk = err_chk export errchk=${errchk:-err_chk} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA @@ -39,6 +42,11 @@ sh ./PDY export pgmout=OUTPUT.$$ +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} + mkdir -p $COMOUT/gridded mkdir -p $COMOUT/station mkdir -p $COMOUT/stats diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 7067b470d5..91d9dcc1ce 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -1,5 +1,7 @@ #!/bin/bash +set -x + date export PS4=' $SECONDS + ' set -x -e @@ -27,9 +29,12 @@ status=$? export NET=${NET:-gfs} export RUN=${RUN:-gfs} +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} + # Add default errchk = err_chk export errchk=${errchk:-err_chk} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA @@ -44,8 +49,32 @@ export RPDY=$PDY export pgmout=OUTPUT.$$ +export COMINwave=${COMINwave:-${ROTDIR:?}} +export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} +export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} +export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT +if [ $RUN_ENVIR = "nco" ]; then + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_WND=${COMIN_WAV_WND:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} + export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.${RPDY} + if [ ! -d $COMIN_WAV_CUR ]; then + export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8` + export COMIN_WAV_CUR=$(compath.py ${WAVECUR_DID}/prod)/${WAVECUR_DID}.${RPDY} + fi +else + if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8`; fi + if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} + fi + $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} + export COMIN_WAV_ICE=${COMIN_OBS} + export COMIN_WAV_WND=${COMIN_OBS} + export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${RPDY} +fi + if [ $SENDCOM = YES ]; then mkdir -p $COMOUT fi @@ -59,4 +88,4 @@ if [ "$KEEPDATA" != "YES" ]; then rm -rf $DATA fi date - +exit 0 diff --git a/ush/nems.configure.med_atm_ocn_ice_wav.IN b/ush/nems.configure.med_atm_ocn_ice_wav.IN index 8c6f849b52..cb732d6b55 100755 --- a/ush/nems.configure.med_atm_ocn_ice_wav.IN +++ b/ush/nems.configure.med_atm_ocn_ice_wav.IN @@ -54,7 +54,7 @@ WAV_attributes:: # Run Sequence # runSeq:: - @@[coupling_interval_slow_sec] + @@[CPL_SLOW] MED MedPhase_prep_ocn MED -> OCN :remapMethod=redist ATM -> WAV @@ -62,7 +62,7 @@ runSeq:: WAV -> OCN :srcMaskValues=1 OCN WAV - @@[coupling_interval_fast_sec] + @@[CPL_FAST] MED MedPhase_prep_ice MED MedPhase_prep_atm MED -> ATM :remapMethod=redist diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index a362d12259..4573a8fa50 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -29,10 +29,12 @@ fi ATM_model=${ATM_model:-'fv3'} OCN_model=${OCN_model:-'mom6'} ICE_model=${ICE_model:-'cice'} +WAV_model=${WAV_model:-'ww3'} ATMPETS=${ATMPETS:-8} OCNPETS=${OCNPETS:-8} ICEPETS=${ICEPETS:-8} +WAVPETS=${WAVPETS:-8} rm -f $DATA/nems.configure @@ -40,6 +42,7 @@ med_petlist_bounds=${med_petlist_bounds:-"0 $(( $ATMPETS-1 ))"} atm_petlist_bounds=${atm_petlist_bounds:-"0 $(( $ATMPETS-1 ))"} #6*8*6+wrtgrps(24) ocn_petlist_bounds=${ocn_petlist_bounds:-"$ATMPETS $(( $ATMPETS+$OCNPETS-1 ))"} #120 ice_petlist_bounds=${ice_petlist_bounds:-"$(( $ATMPETS+$OCNPETS )) $(( $ATMPETS+$OCNPETS+$ICEPETS-1 ))"} #48 +wav_petlist_bounds=${wav_petlist_bounds:-"$(( $ATMPETS+$OCNPETS+$ICEPETS )) $(( $ATMPETS+$OCNPETS+$ICEPETS+$WAVPETS-1 ))"} #48 #if [ $CASE = "C96" ] ; then # med_petlist_bounds=${med_petlist_bounds:-'0 149'} @@ -86,6 +89,7 @@ if [ $cplflx = .true. ]; then fi if [ $cplwav = .true. ]; then sed -i -e "s;@\[wav_model\];ww3;g" tmp1 + sed -i -e "s;@\[wav_petlist_bounds\];$wav_petlist_bounds;g" tmp1 fi if [ $cplice = .true. ]; then sed -i -e "s;@\[ice_model\];$ICE_model;g" tmp1 diff --git a/workflow/cases/coupled_free_forecast_s2s.yaml b/workflow/cases/coupled_free_forecast_s2s.yaml index d0c8658a2e..45428a2b9a 100644 --- a/workflow/cases/coupled_free_forecast_s2s.yaml +++ b/workflow/cases/coupled_free_forecast_s2s.yaml @@ -7,13 +7,13 @@ case: SDATE: 2013-04-01t00:00:00 EDATE: 2013-04-02t00:00:00 - cplwav: .false. - cplwav2atm: .false. + cplwav: .true. + cplwav2atm: .true. cplflx: .true. print_esmf: .true. - nems_temp: 'med_atm_ocn_ice' - nems_temp_cold: 'medcold_atm_ocn_ice' - mom6ic_prepared: .true. + nems_temp: 'med_atm_ocn_ice_wav' + nems_temp_cold: 'med_atm_ocn_ice_wav' + mom6ic_prepared: .false. # cplflx: .false. nsst: @@ -23,7 +23,7 @@ case: OCN_INTERVAL: 24 FHOUT_GFS: 6 FHMIN_GFS: 0 - FHMAX_GFS: 840 + FHMAX_GFS: 120 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: -1 diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index e1568d5145..7c93dadfc5 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -69,6 +69,7 @@ config_fcst: export ATMPETS="{doc.fv3_gfs_settings.ATMPETS}" export OCNPETS="{doc.fv3_gfs_settings.OCNPETS}" export ICEPETS="{doc.fv3_gfs_settings.ICEPETS}" + export WAVPETS="{doc.fv3_gfs_settings.WAVPETS}" # ####################################################################### diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 463e1f3bbc..8f90d43a05 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -1,15 +1,21 @@ config_wave: filename: config.wave content: !expand | + #!/bin/ksh -x + # + # This file is automatically generated from the YAML-based system + # in ecf/ecfutils/. Any changes will be overwritten if + # setup_case.sh is rerun. + + ########## config.base ########## + # Common to all steps + echo "BEGIN: config.wave" export wave_sys_ver=v1.0.0 - export COMPONENTwave=${COMPONENTwave:-${RUN}wave} - export COMPONENTRSTwave=${COMPONENTRSTwave:-gdaswave} - export HOMEwave=${HOMEwave:-${HOMEgfs}} - export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} - export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} - export DATA=${DATA:-${DATAROOT:?}/${jobid}} + export COMPONENTRSTwave=$((COMPONENTRSTwave:-gdaswave)) + export HOMEwave={doc.places.HOMEgfs} + export HOMEgefs={doc.places.HOMEgfs} # Grids for wave model export waveGRD='{doc.wave_settings.waveGRD}' @@ -28,14 +34,15 @@ config_wave: if [ "$CDUMP" = "gdas" ] then - export FHMAX_WAV=${FHMAX_WAV:-9} + export FHMAX_WAV={doc.output_settings.FHMAX_WAV} + else + export FHMAX_WAV={doc.output_settings.FHMAX_WAV_GFS} fi - export WAVHINDH=${WAVHINDH:-0} - export FHMIN_WAV=${FHMIN_WAV:-0} - export FHOUT_WAV=${FHOUT_WAV:-3} - export FHMAX_WAV=${FHMAX_WAV:-384} - export FHMAX_HF_WAV=${FHMAX_HF_WAV:-120} - export FHOUT_HF_WAV=${FHOUT_HF_WAV:-1} + export WAVHINDH=$((WAVHINDH:-0)) + export FHMIN_WAV=${doc.output_settings.FHMIN_WAV} + export FHOUT_WAV=${doc.output_settings.FHOUT_WAV} + export FHMAX_HF_WAV=${doc.output_settings.FHMAX_HF_WAV} + export FHOUT_HF_WAV=${doc.output_settings.FHOUT_HF_WAV} # Output stride export WAV_WND_HOUR_INC=1 # This value should match with the one used in @@ -54,16 +61,16 @@ config_wave: export WAVEWND_FID= # Selected output parameters (gridded) - export OUTPARS_WAV="WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR" + export OUTPARS_WAV=doc.output_settings.OUTPARS_WAV # Options for point output (switch on/off boundary point output) # export DOIBP_WAV='NO' # # # Intake currents settings - export WAV_CUR_DT=${WAV_CUR_DT:-3} - export WAV_CUR_HF_DT=${WAV_CUR_HF_DT:-1} - export WAV_CUR_HF_FH=${WAV_CUR_HF_FH:-72} - export WAV_CUR_CDO_SMOOTH="NO" + export WAV_CUR_DT={doc.wave_settings.WAV_CUR_DT} + export WAV_CUR_HF_DT={doc.wave_settings.WAV_CUR_HF_DT} + export WAV_CUR_HF_FH={doc.wave_settings.WAV_CUR_HF_FH} + export WAV_CUR_CDO_SMOOTH="{doc.wave_settings.WAV_CUR_CDO_SMOOTH}" # Number of cycles to look back for restart files export nback= @@ -72,14 +79,14 @@ config_wave: then WAVNCYC=4 WAVHCYC=6 - FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-48} # RTOFS forecasts only out to 8 days - elif [ ${gfs_cyc} -ne 0 ] + FHMAX_WAV_CUR=48 # RTOFS forecasts only out to 8 days + elif [ $gfs_cyc -ne 0 ] then - FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days - WAVHCYC=`expr 24 / ${gfs_cyc}` + FHMAX_WAV_CUR=192 # RTOFS forecasts only out to 8 days + WAVHCYC=`expr 24 / $gfs_cyc` else WAVHCYC=0 - FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days + FHMAX_WAV_CUR=192 # RTOFS forecasts only out to 8 days fi export FHMAX_WAV_CUR WAVHCYC WAVNCYC @@ -88,7 +95,7 @@ config_wave: export DT_2_RST_WAV=43200 # restart stride for checkpointing restart export RSTIOFF_WAV=0 # first restart file offset relative to model start - export RUNMEM=${RUNMEM:--1} + export RUNMEM=$((RUNMEM:--1)) if [ $RUNMEM = -1 ]; then # No suffix added to model ID in case of deterministic run @@ -103,8 +110,8 @@ config_wave: export WW3ICEINP='YES' export WW3CURINP='YES' # - if [ "${WW3ICEINP}" = "YES" ]; then - export WAVICEFILE=${CDUMP}.t${cyc}z.seaice.5min.grib2 + if [ "$WW3ICEINP" = "YES" ]; then + export WAVICEFILE=$CDUMP.t$((cyc))z.seaice.5min.grib2 fi # # Determine if input is from perturbed ensemble (T) or single input file (F) for all members @@ -114,55 +121,31 @@ config_wave: # # Set resources to propagate NTASKS across cfp call - export NTASKS=${NTASKS:-${npe_node_waveinit}} + export NTASKS={doc.partition_common.resources.run_prep[0].mpi_ranks} # # # Path to HOME Directory - export CODEwave=${CODEwave:-${HOMEfv3gfs}/WW3} - export EXECwave=${EXECwave:-$HOMEwave/exec} - export FIXwave=${FIXwave:-$HOMEwave/fix/fix_wave_${NET}} - export PARMwave=${PARMwave:-$HOMEwave/parm/wave} - export USHwave=${USHwave:-$HOMEwave/ush} - export EXECcode=${EXECcode:-$CODEwave/exec} + export CODEwave=$((CODEwave:-$HOMEfv3gfs/WW3)) + export EXECwave=$((EXECwave:-$HOMEwave/exec)) + export FIXwave={doc.places.FIXwave} + export PARMwave=$((PARMwave:-$HOMEwave/parm/wave)) + export USHwave=$((USHwave:-$HOMEwave/ush)) + export EXECcode=$((EXECcode:-$CODEwave/exec)) # # # Set COM Paths and GETGES environment - export COMINwave=${COMINwave:-${ROTDIR:?}} - export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} - export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} - export COMOUT=${COMOUT:-${COMOUTwave}/${COMPONENTwave}.${PDY}/${cyc}} - export COMINice=${COMINice:-${COMROOTp2}/omb/prod} - export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} - export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) + export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) + export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) # export MP_PULSE=0 - if [ $RUN_ENVIR = "nco" ]; then - export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} - export COMIN_WAV_WND=${COMIN_WAV_WND:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc} - export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${WAVECUR_DID}/prod)}/${WAVECUR_DID}.${RPDY} - if [ ! -d $COMIN_WAV_CUR ]; then - export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8` - export COMIN_WAV_CUR=$(compath.py ${WAVECUR_DID}/prod)/${WAVECUR_DID}.${RPDY} - fi - else - if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8`; fi - if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR - $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} - fi - $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_WAV_ICE=${COMIN_OBS} - export COMIN_WAV_WND=${COMIN_OBS} - export COMIN_WAV_CUR=${ROTDIR}/${WAVECUR_DID}.${RPDY} - fi - - export wavelog=${COMOUTwave}/wave.log + export wavelog=$COMOUTwave/wave.log # Set mpi serial command - export wavempexec=${wavempexec:-"mpirun -n"} - export wave_mpmd=${wave_mpmd:-"cfp"} + export wavempexec=$((wavempexec:-"mpirun -n")) + export wave_mpmd=$((wave_mpmd:-"cfp")) # # # Set wave model ID tag to include member number # # if ensemble; waveMEMB var empty in deterministic - export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} + export WAV_MOD_TAG=$COMPONENTwave$waveMEMB # echo "END: config.wave" diff --git a/workflow/config/waveprep.yaml b/workflow/config/waveprep.yaml index 6258070bfd..97d1d2510e 100644 --- a/workflow/config/waveprep.yaml +++ b/workflow/config/waveprep.yaml @@ -1,21 +1,29 @@ config_waveprep: filename: config.waveprep content: !expand | + #!/bin/ksh -x + # + # This file is automatically generated from the YAML-based system + # in ecf/ecfutils/. Any changes will be overwritten if + # setup_case.sh is rerun. + + ########## config.base ########## + # Common to all steps echo "BEGIN: config.waveprep" - export sigMODE=${sigMODE:-prep} + export sigMODE="{doc.wave_settings.sigMODE}" export HOUR_INC=3 # This value should match with the one used in export GOFILETYPE=1 export POFILETYPE=1 - export FUNIPNT='T' + export FUNIPNT="T" # Unified output server type (see ww3_multi.inp in WW3 repo) - export PNTSRV='1' + export PNTSRV="1" # # Flag for dedicated output process for unified points - export FPNTPROC='T' + export FPNTPROC="T" # # Flag for grids sharing dedicated output processes - export FGRDPROC='F' + export FGRDPROC="F" # echo "END: config.waveprep" diff --git a/workflow/defaults/case.yaml b/workflow/defaults/case.yaml index ea2e5bfd98..13c3abca66 100644 --- a/workflow/defaults/case.yaml +++ b/workflow/defaults/case.yaml @@ -58,6 +58,7 @@ output_settings: !Immediate - !MergeMapping - Template: *output_settings_template - !calc doc.output_settings_defaults + - !calc doc.wave_output_settings_defaults - !calc doc.case.get('output_settings',{}) - !calc doc.get('user_output_settings',{}) diff --git a/workflow/defaults/default_resources.yaml b/workflow/defaults/default_resources.yaml index 68712908fd..5a6f05e7d0 100644 --- a/workflow/defaults/default_resources.yaml +++ b/workflow/defaults/default_resources.yaml @@ -306,7 +306,7 @@ default_resources: &default_resources run_coupled_fcst: !JobRequest - batch_memory: "1024M" - mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS + mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS+doc.fv3_gfs_settings.WAVPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_wall @@ -314,7 +314,7 @@ default_resources: &default_resources run_coupled_medcold: !JobRequest - batch_memory: "1024M" - mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS + mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS+doc.fv3_gfs_settings.WAVPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_medcold_wall diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index 723c5f787e..ab9d4e0edc 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -162,3 +162,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults - otherwise: !calc layout.x * layout.y * 6 OCNPETS: 120 ICEPETS: 48 + WAVPETS: !FirstTrue + - when: !calc doc.settings.cplwav + do: 24 + - otherwise: 0 diff --git a/workflow/defaults/output_settings.yaml b/workflow/defaults/output_settings.yaml index fad2f14d3f..1a5657f340 100644 --- a/workflow/defaults/output_settings.yaml +++ b/workflow/defaults/output_settings.yaml @@ -17,6 +17,7 @@ output_settings_defaults: &output_settings_defaults FHMAX_HF_GFS: 0 FHOUT_HF_GFS: 1 + OCN_INTERVAL: 120 NCO_NAMING_CONV: YES @@ -36,3 +37,16 @@ output_settings_defaults: &output_settings_defaults tools.uniq(sorted( tools.seq(0,84,3) + tools.seq(90,240,6))) + +wave_output_settings_defaults: &wave_output_settings_defaults + FHMIN_WAV: 0 + FHMAX_WAV: 9 + FHMAX_WAV_GFS: 384 + FHOUT_WAV: 3 + + FHMAX_HF_WAV: 120 + FHOUT_HF_WAV: 1 + + FHMAX_WAV_CUR: 48 + + OUTPARS_WAV: "WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR" diff --git a/workflow/defaults/places.yaml b/workflow/defaults/places.yaml index 36fc127668..819a54583a 100644 --- a/workflow/defaults/places.yaml +++ b/workflow/defaults/places.yaml @@ -10,6 +10,8 @@ default_places: &default_places NWPROD: !calc doc.platform.NWPROD DMPDIR: !calc doc.platform.DMPDIR RTMFIX: !calc doc.platform.RTMFIX + + FIXwave: !expand "{HOMEgfs}/fix/fix_wav" EXPDIR: !expand "{doc.platform.EXPROOT}/{doc.names.experiment}" ROTDIR: !expand "{doc.platform.COMROOT}/{doc.names.experiment}" diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index a88d2d54b0..575a75f9d7 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -1,4 +1,10 @@ wave_defaults: &wave_defaults + MOD: ww3 + sigMODE: prep waveGRD: 'glo_10m aoc_9km ant_9km' waveGRDN: '1 2 3' waveGRDG: '10 20 30' + WAV_CUR_DT: 3 + WAV_CUR_HF_DT: 1 + WAV_CUR_HF_FH: 72 + WAV_CUR_CDO_SMOOTH: NO diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index 51b4413122..01ddf3b521 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -52,11 +52,30 @@ suite: !Cycle RUN: 'gfs' ecflow_def: "edit RUN 'gfs'" + prep: !Family + + waveinit: !Task + <<: *exclusive_task_template + Disable: !calc doc.settings.cplwav=='.false.' + Trigger: !Depend up.up.ics.jgfs_emc_mom6ic + resources: !calc partition.resources.run_prep + J_JOB: rocoto/waveinit.sh + + waveprep: !Task + <<: *exclusive_task_template + Disable: !calc doc.settings.cplwav=='.false.' + Trigger: !Depend waveinit + resources: !calc partition.resources.run_prep + J_JOB: rocoto/waveprep.sh + forecast: !Family medcold: !Task <<: *exclusive_task_template Disable: !calc doc.settings.cplflx=='.false.' - Trigger: !Depend up.up.ics.jgfs_emc_mom6ic + Trigger: !FirstTrue + - when: !calc doc.settings.cplwav=='.true.' + do: !Depend up.prep + - otherwise: !Depend up.up.ics.jgfs_emc_mom6ic resources_remap: !JobRequest [ { <<: *remap_resource_template } ] resources: !calc partition.resources.run_coupled_medcold J_JOB: JGLOBAL_FORECAST_MEDCOLD diff --git a/workflow/schema/wave.yaml b/workflow/schema/wave.yaml new file mode 100644 index 0000000000..57295b9965 --- /dev/null +++ b/workflow/schema/wave.yaml @@ -0,0 +1,9 @@ +# fv3_settings_template - sets the namelist values for the fv3 +# forecast. See the physcs and model documentation for full +# information on these variables. + +wave_settings_template: !Template &wave_settings_template + MOD: + type: string + allowed: [ ww3, swan ] + description: "model selection for wave" From 1f27581b646f071d669ea11abe7bfc4ba02867c4 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 3 Jun 2020 08:01:28 -0500 Subject: [PATCH 59/91] Fix suite name of CCPP Move cplwav and cplwav2atm variable --- ush/parsing_namelists_FV3.sh | 19 +++++++------------ ...s.yaml => coupled_free_forecast_wave.yaml} | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) rename workflow/cases/{coupled_free_forecast_s2s.yaml => coupled_free_forecast_wave.yaml} (90%) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index bc61711a7e..4f08c0d438 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -50,7 +50,7 @@ cat > input.nml <> input.nml << EOF ccpp_suite = ${CCPP_SUITE:-"FV3_GFS_v15"} EOF @@ -209,9 +209,7 @@ if [ $CCPP_SUITE = "FV3_GFS_v15p2_coupled" ]; then oz_phys = .false. oz_phys_2015 = .true. EOF -fi - -if [ $CCPP_SUITE = "FV3_GSD_v0" ]; then +elif [ $CCPP_SUITE = "FV3_GSD_v0" ]; then cat >> input.nml << EOF ltaerosol = ${ltaerosol:-".F."} ! In config.fcst lradar = ${lradar:-".F."} ! In config.fcst @@ -224,16 +222,11 @@ if [ $CCPP_SUITE = "FV3_GSD_v0" ]; then bl_mynn_tkeadvect=${bl_mynn_tkeadvect:-".true."} ! In config.fcst bl_mynn_edmf_mom=${bl_mynn_edmf_mom:-"1"} ! In config.fcst EOF -elif [ $CCPP_SUITE = "S2S" ]; then - cat >> input.nml << EOF - oz_phys = ${oz_phys} ! In config.fcst - oz_phys_2015 = ${oz_phys_2015} ! In config.fcst - cplwav = ${cplwav} ! CROW configured - cplwav2atm = ${cplwav2atm} ! CROW configured -EOF fi cat >> input.nml <> input.nml <> input.nml << EOF cplflx = $cplflx + cplwav = ${cplwav} ! CROW configured + cplwav2atm = ${cplwav2atm} ! CROW configured EOF fi diff --git a/workflow/cases/coupled_free_forecast_s2s.yaml b/workflow/cases/coupled_free_forecast_wave.yaml similarity index 90% rename from workflow/cases/coupled_free_forecast_s2s.yaml rename to workflow/cases/coupled_free_forecast_wave.yaml index 45428a2b9a..91e373dc9b 100644 --- a/workflow/cases/coupled_free_forecast_s2s.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -1,7 +1,7 @@ case: places: workflow_file: layout/free_forecast_gfs.yaml - MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS + #BASE_CPLIC: /scratch2/NCEPDEV/climate/climpara/S2S/IC settings: SDATE: 2013-04-01t00:00:00 @@ -32,7 +32,7 @@ case: LEVS: 65 DELTIM: 450 SEEDLET: 10 - CCPP_SUITE: S2S + CCPP_SUITE: FV3_GFS_v15p2_coupled nst_anl: no DO_SKEB: false DO_SHUM: false From d8bca2e7ff007326a427971b084ddf7d5f8c2781 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 3 Jun 2020 08:04:21 -0500 Subject: [PATCH 60/91] Revise CCPP_SUITE variable name, default option, to "IPD" --- workflow/defaults/fv3_enkf.yaml | 2 +- workflow/defaults/fv3_gdas.yaml | 2 +- workflow/defaults/fv3_gfs.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow/defaults/fv3_enkf.yaml b/workflow/defaults/fv3_enkf.yaml index 3ea1137725..4e7e5bfd3a 100644 --- a/workflow/defaults/fv3_enkf.yaml +++ b/workflow/defaults/fv3_enkf.yaml @@ -2,7 +2,7 @@ fv3_enkf_defaults: &fv3_enkf_defaults CDUMP: gdas CASE: C192 LEVS: 65 - CCPP_SUITE: GFS + CCPP_SUITE: IPD FHCYC: 1 FHCYC_GDAS: 1 FHCYC_GFS: 24 diff --git a/workflow/defaults/fv3_gdas.yaml b/workflow/defaults/fv3_gdas.yaml index 586d5ab50c..1766a7313e 100644 --- a/workflow/defaults/fv3_gdas.yaml +++ b/workflow/defaults/fv3_gdas.yaml @@ -1,7 +1,7 @@ fv3_gdas_defaults: &fv3_gdas_defaults CDUMP: gdas CASE: C384 - CCPP_SUITE: GFS + CCPP_SUITE: IPD LEVS: 65 FHCYC: 24 FHCYC_GDAS: 1 diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index ab9d4e0edc..f082826734 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -2,7 +2,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults CDUMP: gfs CASE: C384 LEVS: 65 - CCPP_SUITE: GFS + CCPP_SUITE: IPD FHCYC: 24 FHCYC_GDAS: 1 FHCYC_GFS: 24 From 42c3e1ac3c53991cb1a1bb48aa0ff4d94fc7a83c Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 3 Jun 2020 08:32:51 -0500 Subject: [PATCH 61/91] wave post-process job update --- workflow/layout/free_forecast_gfs.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index 01ddf3b521..ee09d616c7 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -183,6 +183,28 @@ suite: !Cycle export OCN_FHRLST="{OCN_FHRLST}"; $HOMEgfs/jobs/{J_JOB} #endfamily ocnpost + wavepost: !TaskArray + RUN: !calc up.RUN + Disable: !calc not doc.settings.cplwav + Dimensions: + fhr: !calc doc.output_settings.ocnpost_hours + jgfs_wavepost_fhr_el: !TaskElement + <<: *exclusive_task_template + Foreach: [ fhr ] + resources: !calc partition.resources.run_one_node_downstream + Name: !expand p_{dimval.fhr:03d} + FHR: !expand "{dimval.fhr:03d}" + OCN_FHRLST: !calc "tools.seq(dimval.fhr, dimval.fhr+doc.output_settings.OCN_INTERVAL, 6)" + J_JOB: rocoto/wavepostsbs.sh + Trigger: !Depend up.forecast + ecflow_def: !expand "edit FHR '{FHR}'" + ecflow_command: !expand | + export post_times=%FHR% FHRLST=%FHR% FHRGRP=%FHR% + $HOMEgfs/jobs/{J_JOB} + rocoto_command: !expand >- + {rocoto_load_modules} ; + export OCN_FHRLST="{OCN_FHRLST}"; $HOMEgfs/jobs/{J_JOB} + jgfs_emc_vrfy: !Task <<: *exclusive_task_template Trigger: !Depend post From 5734ffc732912589817d0da39c4d1f10a43960cb Mon Sep 17 00:00:00 2001 From: "Lin.Gan" Date: Wed, 3 Jun 2020 13:47:17 +0000 Subject: [PATCH 62/91] reg2grb2 for test on feature coupled-crow --- modulefiles/modulefile.reg2grb2.hera | 15 + modulefiles/modulefile.reg2grb2.orion | 12 + scripts/run_reg2grb2.sh | 111 ++ scripts/run_regrid.sh | 36 + sorc/build_all_reg2grb2.sh | 222 ++++ sorc/build_reg2grb2.sh | 39 + sorc/partial_build.sh | 3 +- sorc/reg2grb2.fd/Makefile | 26 + sorc/reg2grb2.fd/reg2grb2.f | 185 ++++ sorc/reg2grb2.fd/regdiag.f | 1431 +++++++++++++++++++++++++ 10 files changed, 2079 insertions(+), 1 deletion(-) create mode 100644 modulefiles/modulefile.reg2grb2.hera create mode 100644 modulefiles/modulefile.reg2grb2.orion create mode 100755 scripts/run_reg2grb2.sh create mode 100755 scripts/run_regrid.sh create mode 100755 sorc/build_all_reg2grb2.sh create mode 100755 sorc/build_reg2grb2.sh create mode 100755 sorc/reg2grb2.fd/Makefile create mode 100755 sorc/reg2grb2.fd/reg2grb2.f create mode 100755 sorc/reg2grb2.fd/regdiag.f diff --git a/modulefiles/modulefile.reg2grb2.hera b/modulefiles/modulefile.reg2grb2.hera new file mode 100644 index 0000000000..377cd9e6a8 --- /dev/null +++ b/modulefiles/modulefile.reg2grb2.hera @@ -0,0 +1,15 @@ +#%Module##################################################### +# reg2grb2 - hera +############################################################# + +module load intel/18.0.5.274 +module load netcdf/4.7.0 +module use -a $MOD_PATH +module load ip/3.0.1 +module load sp/2.0.2 +module load w3nco/2.0.7 +module load bacio/2.0.2 +module load landsfcutil/2.1.0 +module load wgrib2/2.0.8 + +set FCMP ifort diff --git a/modulefiles/modulefile.reg2grb2.orion b/modulefiles/modulefile.reg2grb2.orion new file mode 100644 index 0000000000..f92fd12ec1 --- /dev/null +++ b/modulefiles/modulefile.reg2grb2.orion @@ -0,0 +1,12 @@ +#%Module##################################################### +# reg2grb2 - hera +############################################################# +export FCOMP=ifort +module load intel/2020 +module load netcdf/4.7.2 +module load ip/3.0.2 +module load sp/2.0.3 +module load w3nco/2.0.7 +module load bacio/2.0.3 +module load landsfcutil/2.1.1 +module load wgrib/2.0.8 diff --git a/scripts/run_reg2grb2.sh b/scripts/run_reg2grb2.sh new file mode 100755 index 0000000000..417fcab793 --- /dev/null +++ b/scripts/run_reg2grb2.sh @@ -0,0 +1,111 @@ +#!/bin/bash +set -euax + +# Adapted from: Xingren Wu +# 2016-09-02 +# This scripts is for CFS/UGCS ocean post + +# Christopher Melhauser +# 2017-09-11 +# This script is for UGCS CICE5/MOM5 ocean and ice post + +# Xingren Wu +# 2017-10-23 +# Update and bug/fix +#module purge +#module load ics/12.1 +#module load prod_util/v1.0.7 +#module load NetCDF/4.2/serial +#module load prod_util/1.0.18 +module load grib_util/1.1.1 +module list + +#### export NWPROD=${NWPROD:-/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod} +# on Hera +#### module purge +#### module load intel/18.0.5.274 +#### module load netcdf/4.7.0 +#### module load wgrib2/2.0.8 +#### module use -a $MOD_PATH +#### module load ip/3.0.1 +#### module load sp/2.0.2 +#### module load w3nco/2.0.6 +#### module load bacio/2.0.2 +#### module load landsfcutil/2.1.0 +#### set FCMP ifort + +#export execdir=${execdir:-/climate/save/emc.climpara/Xingren/regrid/iceocnpost/exec} +#export executable=${executable:-$execdir/reg2grb2.x} + +#### export execdir=$MOM6REGRID/exec +#### export execdir=${execdir:-/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post/mom6_regrid_025/exec} +#### export executable=${executable:-$execdir/reg2grb2.x} +#### export mask_file=/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post/mom6_regrid_025/mask.0p25x0p25.grb2 +export mask_file=$MOM6REGRID/fix/mask.0p25x0p25.grb2 +#export icefile=/climate/save/emc.climpara/Xingren/regrid/out/icer2015040106.01.2015040100_0p5x0p5_CICE.nc +#export ocnfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnr2015040106.01.2015040100_0p5x0p5_MOM6.nc +#export outfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnh2015040106.01.2015040100.grb2 +# +# offline testing: +#export DATA= +#export icefile=$DATA/DATA0p5/icer2012010106.01.2012010100_0p5x0p5.nc +#export ocnfile=$DATA/DATA0p5/ocnr2012010106.01.2012010100_0p5x0p5.nc +#export outfile=$DATA/DATA0p5/out/ocnh2012010106.01.2012010100.grb2 +# +# workflow testing: +export icefile=icer${CDATE}.${ENSMEM}.${IDATE}_0p25x0p25_CICE.nc +export ocnfile=ocnr${CDATE}.${ENSMEM}.${IDATE}_0p25x0p25_MOM6.nc +export outfile=ocn_ice${CDATE}.${ENSMEM}.${IDATE}_0p25x0p25.grb2 +export outfile0p5=ocn_ice${CDATE}.${ENSMEM}.${IDATE}_0p5x0p5.grb2 + +export mfcstcpl=${mfcstcpl:-1} +export IGEN_OCNP=${IGEN_OCNP:-197} + +# PT This is the forecast date +export year=`echo $CDATE | cut -c1-4` +export month=`echo $CDATE | cut -c5-6` +export day=`echo $CDATE | cut -c7-8` +export hour=`echo $CDATE | cut -c9-10` + +# PT This is the initialization date +export syear=`echo $IDATE | cut -c1-4` +export smonth=`echo $IDATE | cut -c5-6` +export sday=`echo $IDATE | cut -c7-8` +export shour=`echo $IDATE | cut -c9-10` + +# PT Need to get this from above - could be 6 or 1 hour +export hh_inc_ocn=6 +# +# set for 1p0 lat-lon +#export im=360 +#export jm=181 +# export km=40 +#export imo=360 +#export jmo=181 +# +# set for 0p5 lat-lon +#export im=720 +#export jm=361 +#export km=40 +#export imo=720 +#export jmo=361 +# +# set for 0p25 lat-lon +export im=1440 +export jm=721 +export imo=1440 +export jmo=721 +export km=40 + +export flats=-90. +export flatn=90. +export flonw=0.0 +export flone=359.75 + +ln -sf $mask_file ./iceocnpost.g2 +$executable > reg2grb2.$CDATE.$IDATE.out + +# interpolated from 0p25 to 0p5 grid +grid2p05="0 6 0 0 0 0 0 0 720 361 0 0 90000000 0 48 -90000000 359500000 500000 500000 0" +#### $NWPROD/util/exec/copygb2 -g "${grid2p05}" -i0 -x $outfile $outfile0p5 +$COPYGB2 -g "${grid2p05}" -i0 -x $outfile $outfile0p5 diff --git a/scripts/run_regrid.sh b/scripts/run_regrid.sh new file mode 100755 index 0000000000..38449870c5 --- /dev/null +++ b/scripts/run_regrid.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -euax + +##################################################################### +# User specific parameters + +echo "Entered $0" + +export EXEC_DIR=$MOM6REGRID/exec +export FIX_DIR=$MOM6REGRID/fix +export COMOUT=$COMOUT +export IDATE=$IDATE +export ENSMEM=$ENSMEM +export FHR=$fhr +export DATA=$DATA +export OCNFIXDIR=$OCNFIXDIR + +#export IDATE=2015040100 # From caller/env +#export ENSMEM=01 # From caller/env +#export NCARG_ROOT=$ROOT_DIR/ncl # From module +#export FHR=$fhr + +###### DO NOT MODIFY BELOW UNLESS YOU KNOW WHAT YOU ARE DOING ####### +module load ncl/6.5.0 +echo $NCARG_ROOT +export NCL=$NCARG_ROOT/bin/ncl + +#### +ls -alrt + +# executed from DATA dir +#$NCL $EXEC_DIR/regrid_MOM6.ncl > regrid_MOM6.log 2>&1 +#$NCL $EXEC_DIR/regrid_CICE.ncl > regrid_CICE.log 2>&1 +$NCL $FIX_DIR/icepost.ncl > regrid_CICE.log 2>&1 +$NCL $FIX_DIR/ocnpost.ncl > regrid_MOM6.log 2>&1 +##################################################################### diff --git a/sorc/build_all_reg2grb2.sh b/sorc/build_all_reg2grb2.sh new file mode 100755 index 0000000000..1c4a41122c --- /dev/null +++ b/sorc/build_all_reg2grb2.sh @@ -0,0 +1,222 @@ +#!/bin/sh +set -eu +#------------------------------------ +# USER DEFINED STUFF: +# +# USE_PREINST_LIBS: set to "true" to use preinstalled libraries. +# Anything other than "true" will use libraries locally. +#------------------------------------ + +if [ $# -eq 1 ]; then +model=$1 +fi +model=${model:-"uncoupled"} + +export USE_PREINST_LIBS="true" + +#------------------------------------ +# END USER DEFINED STUFF +#------------------------------------ + +build_dir=`pwd` +logs_dir=$build_dir/logs +if [ ! -d $logs_dir ]; then + echo "Creating logs folder" + mkdir $logs_dir +fi + +# Check final exec folder exists +if [ ! -d "../exec" ]; then + echo "Creating ../exec folder" + mkdir ../exec +fi + +#------------------------------------ +# GET MACHINE +#------------------------------------ +target="" +source ./machine-setup.sh > /dev/null 2>&1 + +#------------------------------------ +# INCLUDE PARTIAL BUILD +#------------------------------------ + +. ./partial_build.sh + +#------------------------------------ +# build libraries first +#------------------------------------ +$Build_libs && { +echo " .... Library build not currently supported .... " +#echo " .... Building libraries .... " +#./build_libs.sh > $logs_dir/build_libs.log 2>&1 +} + +#------------------------------------ +# build fv3 +#------------------------------------ +if [ $model = "coupled" ]; then + ./build_fv3_coupled.sh > $logs_dir/build_fv3_coupled.log 2>&1 +else + $Build_fv3gfs && { + echo " .... Building fv3 .... " + ./build_fv3.sh > $logs_dir/build_fv3.log 2>&1 + } +fi +#------------------------------------ +# build gsi +#------------------------------------ +$Build_gsi && { +echo " .... Building gsi .... " +./build_gsi.sh > $logs_dir/build_gsi.log 2>&1 +} + +#------------------------------------ +# build ncep_post +#------------------------------------ +$Build_ncep_post && { +echo " .... Building ncep_post .... " +./build_ncep_post.sh > $logs_dir/build_ncep_post.log 2>&1 +} + +#------------------------------------ +# build ufs_utils +#------------------------------------ +$Build_ufs_utils && { +echo " .... Building ufs_utils .... " +./build_ufs_utils.sh > $logs_dir/build_ufs_utils.log 2>&1 +} + +#------------------------------------ +# build gfs_wafs +#------------------------------------ +# Only build on WCOSS +if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then + $Build_gfs_wafs && { + echo " .... Building gfs_wafs .... " + ./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs .log 2>&1 + } +fi + +#------------------------------------ +# build sfcanl_nsttfchg +#------------------------------------ +$Build_sfcanl_nsttfchg && { +echo " .... Building gaussian_sfcanl and nst_tf_chg .... " +./build_sfcanl_nsttfchg.sh > $logs_dir/build_sfcanl_nsttfchg.log 2>&1 +} + +#------------------------------------ +# build enkf_chgres_recenter +#------------------------------------ +$Build_enkf_chgres_recenter && { +echo " .... Building enkf_chgres_recenter .... " +./build_enkf_chgres_recenter.sh > $logs_dir/build_enkf_chgres_recenter.log 2>&1 +} + +#------------------------------------ +# build tropcy_NEMS +#------------------------------------ +$Build_tropcy && { +echo " .... Building tropcy_NEMS .... " +./build_tropcy_NEMS.sh > $logs_dir/build_tropcy_NEMS.log 2>&1 +} + +#------------------------------------ +# build gdas +#------------------------------------ +$Build_gdas && { +echo " .... Building gdas .... " +./build_gdas.sh > $logs_dir/build_gdas.log 2>&1 +} + +#------------------------------------ +# build gfs_fbwndgfs +#------------------------------------ +$Build_gfs_fbwndgfs && { +echo " .... Building gfs_fbwndgfs .... " +./build_gfs_fbwndgfs.sh > $logs_dir/build_gfs_fbwndgfs.log 2>&1 +} + +#------------------------------------ +# build gfs_overpdtg2 +#------------------------------------ +$Build_gfs_overpdtg2 && { +echo " .... Building gfs_overpdtg2 .... " +./build_gfs_overpdtg2.sh > $logs_dir/build_gfs_overpdtg2.log 2>&1 +} + +#------------------------------------ +# build gfs_wintemv +#------------------------------------ +$Build_gfs_wintemv && { +echo " .... Building gfs_wintemv .... " +./build_gfs_wintemv.sh > $logs_dir/build_gfs_wintemv.log 2>&1 +} + +#------------------------------------ +# build gfs_bufrsnd +#------------------------------------ +$Build_gfs_bufrsnd && { +echo " .... Building gfs_bufrsnd .... " +./build_gfs_bufrsnd.sh > $logs_dir/build_gfs_bufrsnd.log 2>&1 +} + +#------------------------------------ +# build fv3nc2nemsio +#------------------------------------ +$Build_fv3nc2nemsio && { +echo " .... Building fv3nc2nemsio .... " +./build_fv3nc2nemsio.sh > $logs_dir/build_fv3nc2nemsio.log 2>&1 +} + +#------------------------------------ +# build regrid_nemsio +#------------------------------------ +$Build_regrid_nemsio && { +echo " .... Building regrid_nemsio .... " +./build_regrid_nemsio.sh > $logs_dir/build_regrid_nemsio.log 2>&1 +} + +#------------------------------------ +# build gfs_util +#------------------------------------ +# Only build on WCOSS +if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then + $Build_gfs_util && { + echo " .... Building gfs_util .... " + ./build_gfs_util.sh > $logs_dir/build_gfs_util.log 2>&1 + } +fi + +#------------------------------------ +# build prod_util +#------------------------------------ +$Build_prod_util && { +echo " .... prod_util build not currently supported .... " +#echo " .... Building prod_util .... " +#./build_prod_util.sh > $logs_dir/build_prod_util.log 2>&1 +} + +#------------------------------------ +# build grib_util +#------------------------------------ +$Build_grib_util && { +echo " .... grib_util build not currently supported .... " +#echo " .... Building grib_util .... " +#./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1 +} + +#------------------------------------ +# build reg2grb2 +#------------------------------------ +if [ $target = hera -o $target = orion ]; then + $Build_reg2grb2 && { + echo " .... Building reg2grb2 .... " + ./build_reg2grb2.sh > $logs_dir/build_reg2grb2.log 2>&1 +} +fi + +echo;echo " .... Build system finished .... " + +exit 0 diff --git a/sorc/build_reg2grb2.sh b/sorc/build_reg2grb2.sh new file mode 100755 index 0000000000..4d687ba946 --- /dev/null +++ b/sorc/build_reg2grb2.sh @@ -0,0 +1,39 @@ +#! /usr/bin/env bash +set -x + +# Check final exec folder exists +#if [ ! -d "../exec" ]; then +# mkdir ../exec +#fi + +source ../modulefiles/modulefile.reg2grb2.hera + +export FCMP=${FCMP:-ifort} +export FCMP95=$FCMP +export CPP=fpp + +export INCS="-I${LANDSFCUTIL_INCd} \ + -I${IP_INCd} \ + -I${NETCDF}/include" + +export FFLAGSM="-O3 -free -convert big_endian -traceback -qopenmp -fp-model precise -assume byterecl ${INCS}" +export FFLAGSM2="-O3 -free -r8" + +export LIBSM="${LANDSFCUTIL_LIBd} \ + ${IP_LIBd} \ + ${SP_LIBd} \ + ${W3NCO_LIB4} \ + ${BACIO_LIB4} \ + -L${NETCDF}/lib -lnetcdff -lnetcdf" + +WGRIB2DIR=$WGRIB2_ROOT +export LIB2="-L$WGRIB2DIR/lib -lwgrib2 -lwgrib2_api" +export MOD2="-I$WGRIB2DIR/lib" + +cd reg2grb2.fd + +pwd + +make -f Makefile clean +make -f Makefile +make -f Makefile install diff --git a/sorc/partial_build.sh b/sorc/partial_build.sh index 885548f052..6b6351e061 100755 --- a/sorc/partial_build.sh +++ b/sorc/partial_build.sh @@ -16,7 +16,8 @@ "Build_regrid_nemsio" \ "Build_gfs_util" \ "Build_prod_util" \ - "Build_grib_util") + "Build_grib_util" \ + "Build_reg2grb2") # # function parse_cfg: read config file and retrieve the values diff --git a/sorc/reg2grb2.fd/Makefile b/sorc/reg2grb2.fd/Makefile new file mode 100755 index 0000000000..edd523f061 --- /dev/null +++ b/sorc/reg2grb2.fd/Makefile @@ -0,0 +1,26 @@ +SHELL =/bin/sh +INCMOD =${INCS} + +SRCM =reg2grb2.f +OBJS =regdiag.o +FC =ifort +FC90 =ifort + +FFLAGS = ${FFLAGSM} +FFLAGS2 = ${FFLAGSM2} + +NCDFLIB = ${NCDF} +LIBS = ${LIBSM} ${NCDFLIB} + +CMD = reg2grb2.x +$(CMD): $(SRCM) $(OBJS) + $(FCMP) $(FFLAGS) -o $(CMD) $(LDFLAGS) $(SRCM) $(OBJS) $(LIBS) ${MOD2} ${LIB2} + +regdiag.o:regdiag.f + $(FCMP) $(FFLAGS) -I $(INCMOD) -c regdiag.f ${MOD2} ${LIB2} + +clean: + -rm -f $(OBJS) *.mod + +install: + mv $(CMD) ../../exec/$(CMD) diff --git a/sorc/reg2grb2.fd/reg2grb2.f b/sorc/reg2grb2.fd/reg2grb2.f new file mode 100755 index 0000000000..6fd98cd35a --- /dev/null +++ b/sorc/reg2grb2.fd/reg2grb2.f @@ -0,0 +1,185 @@ + program reg2grb2 + +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! ! +! This program reads lat-lon ocean and ice data, calculates diagnostics, ! +! and saves them in grib2 format. ! +! ! +! Xingren Wu (Xingren.Wu@noaa.gov) ! +! April 20, 2007 ! +! ! +! Xingren Wu - Update for MOM5/CICE with grib2 output ! +! February 16, 2017 ! +! ! +! Christopher Melhauesr - Update for MOM6/CICE5 with grib2 output ! +! September 8th, 2017 ! +! ! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! + + use regdiag_mod, only: diag + use wgrib2api + + implicit none + + integer iyr,imth,iday,ihr,im,jm,km,imo,jmo + integer isyr,ismth,isday,ishr + integer mfh,mfhout,mfcstcpl,igenocnp +! integer idbug,mkmoc,jmtpo,jmtp,imos,nreg + + real*4 dlat,dlon,flats,flatn,flonw,flone +! real*4 tripolat + CHARACTER*1 kmfcstcpl +! CHARACTER*1 kdbug,kmkmoc + CHARACTER*300 icefile,ocnfile,outfile +! CHARACTER*120 mocfile,cicefile + CHARACTER*10 syr,smth,sday,shr + CHARACTER*10 kyr,kmth,kday,khr + CHARACTER*10 kfh,kfhout + CHARACTER*10 kim,kjm,kkm +! CHARACTER*10 knreg,kimos,kjmtp,kjmtpo + CHARACTER*10 kimo,kjmo + CHARACTER*10 klats,klatn,klonw,klone,kigenocnp +! CHARACTER*10 ktripolat + + call start() +! call getenv("idbug",kdbug) +! read(kdbug,'(i1)') idbug +! write(*,*) "idbug= ",idbug +!! +! call getenv("mkmoc",kmkmoc) +! read(kmkmoc,'(i1)') mkmoc +! write(*,*) "mkmoc= ",mkmoc +! + call getenv("mfcstcpl",kmfcstcpl) + read(kmfcstcpl,'(i1)') mfcstcpl + write(*,*) "mfcstcpl= ",mfcstcpl +! + call getenv("IGEN_OCNP",kigenocnp) + read(kigenocnp,'(i3)') igenocnp + write(*,*) "IGEN_OCNP= ",igenocnp +! + call getenv("icefile",icefile) + write(*,*) "icefile= ",icefile +! + call getenv("ocnfile",ocnfile) + write(*,*) "ocnfile= ",ocnfile +!! +! call getenv("cicefile",cicefile) +! write(*,*) "cicefile= ",cicefile +!! + call getenv("outfile",outfile) + write(*,*) "outfile= ",outfile +!! +! call getenv("mocfile",mocfile) +! write(*,*) "mocfile= ",mocfile +!! + call getenv("syear",syr) + read(syr,'(I4)') isyr + write(*,*) "syear= ",isyr +! + call getenv("smonth",smth) + read(smth,'(I2)') ismth + write(*,*) "smonth= ",ismth +! + call getenv("sday",sday) + read(sday,'(I2)') isday + write(*,*) "sday= ",isday +! + call getenv("shour",shr) + read(shr,'(I2)') ishr + write(*,*) "shour= ",ishr +! + call getenv("year",kyr) + read(kyr,'(I4)') iyr + write(*,*) "year= ",iyr +! + call getenv("month",kmth) + read(kmth,'(I2)') imth + write(*,*) "month= ",imth +! + call getenv("day",kday) + read(kday,'(I2)') iday + write(*,*) "day= ",iday +! + call getenv("hour",khr) + read(khr,'(I2)') ihr + write(*,*) "hour= ",ihr +! + call getenv("fh",kfh) + read(kfh,'(I10)') mfh + write(*,*) "fh= ",mfh +! + call getenv("hh_inc_ocn",kfhout) + read(kfhout,'(I10)') mfhout + write(*,*) "hh_inc_ocn= ",mfhout +! + call getenv("im",kim) + read(kim,'(I10)') im + write(*,*) "im= ",im +! + call getenv("jm",kjm) + read(kjm,'(I10)') jm + write(*,*) "jm= ",jm +! + call getenv("imo",kimo) + read(kimo,'(I10)') imo + write(*,*) "imo= ",imo +! + call getenv("jmo",kjmo) + read(kjmo,'(I10)') jmo + write(*,*) "jmo= ",jmo +!! +! call getenv("jmtp",kjmtp) +! read(kjmtp,'(I10)') jmtp +! write(*,*) "jmtp= ",jmtp +!! +! call getenv("jmtpo",kjmtpo) +! read(kjmtpo,'(I10)') jmtpo +! write(*,*) "jmtpo= ",jmtpo +!! +! call getenv("imos",kimos) +! read(kimos,'(I10)') imos +! write(*,*) "imos= ",imos +!! + call getenv("km",kkm) + read(kkm,'(I10)') km + write(*,*) "km= ",km +! + call getenv("flats",klats) + read(klats,'(f8.1)') flats + write(*,*) "flats= ",flats +! + call getenv("flatn",klatn) + read(klatn,'(f8.1)') flatn + write(*,*) "flatn= ",flatn +! + call getenv("flonw",klonw) + read(klonw,'(f8.1)') flonw + write(*,*) "flonw= ",flonw +! + call getenv("flone",klone) + read(klone,'(f8.1)') flone + write(*,*) "flone= ",flone +! +! call getenv("nreg",knreg) +! read(knreg,'(i10)') nreg +! write(*,*) "nreg= ",nreg +!! +! call getenv("tripolat",ktripolat) +! read(ktripolat,'(f8.1)') tripolat +! write(*,*) "tripolat= ",tripolat +!! + dlat = (flatn-flats) / (jmo-1) +! + dlon = (flone-flonw) / (imo-1) +! + call diag(im,jm,km,icefile,ocnfile, & + isyr,ismth,isday,ishr,iyr,imth,iday,ihr,mfh,mfhout, & + flonw,flone,dlon,flatn,flats,dlat,imo,jmo, & + outfile,mfcstcpl,igenocnp) +! + call summary() + call errexit(0) + stop + end + diff --git a/sorc/reg2grb2.fd/regdiag.f b/sorc/reg2grb2.fd/regdiag.f new file mode 100755 index 0000000000..1130ce9476 --- /dev/null +++ b/sorc/reg2grb2.fd/regdiag.f @@ -0,0 +1,1431 @@ +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! ! +! This program reads ocean and ice data on lat/lon grid ! +! It contains 4 subroutines: diag, read_ice, read_ocn ! +! ! +! Xingren Wu (Xingren.Wu@noaa.gov) ! +! May 18, 2007 ! +! Xingren Wu ! +! Nov 16, 2007 - modified ! +! fix kpds(13) to kpds(15) for handle different forecast time unit ! +! Xingren Wu ! +! Dec 4, 2007 - modified ! +! add extra fields to match production output ! +! Xingren Wu ! +! Sep 7, 2016 - modified ! +! add cice ! +! Xingren Wu ! +! Feb 10, 2017 - modified ! +! writing grib2 ! +! Christopher Melhauser ! +! Sep 8, 2017 - overhauled code for latlon --> grb2 only ! +! Xingren Wu ! +! Oct 23, 2017 - Bug/fix ! +! Suranjana Saha ! +! Nov 8, 2017 - Added new variables in the MOM6 NetCDF file to grib2 ! +! ! +! Xingren Wu ! +! Nov 22, 2017 - Fixed the following ! +! 1. Ice concentration ! +! 2. Ice thickness ! +! 3. Snow depth ! +! 4. Surface Temperature over Water and Ice ! +! 5. u-component of ice drift ! +! 6. v-component of ice drift ! +! Mar 30, 2018 - Bug fix ! +! ! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! Notes: ! +! 1. uflx, vflx, lhtfl and shtfl are opposite in sign to data in the flx file ! +! 2. nlwrs=net lw radiation at sfc i.e dlwrfavesfc-ulwrfavesfc flx file ! +! 3. nswrs=net sw radiation at sfc i.e. dswrfavesfc-uswrfavesfc in flx file ! +! 4. sfc_hflux (THFLX) = Total net heat, i.e. ! +! dswrfavesfc-uswrfavesfc+dlwrfavesfc-ulwrfavesfc-lhtflsfc-shtflsfc in flx ! +! 5. evp=evaporation i.e -lhtflsfc*0.03456 in flx file ! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! Note that the input NetCDF and output grib2 files have the following: ! +! z=1 is topmost level; z=40 is bottom most level ! +! even though grads control file puts z=1 at the bottom and z=40 at the top ! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! + +module regdiag_mod +use wgrib2api + + implicit none + +contains + + subroutine read_ocn(im,jm,km,lon,lat, & + t,s,u,v,eta,sfcflx,pme,mld,taux,tauy,ocean_file, & + sss,ssu,ssv,speed,sensible,latent,sw,lw,lprec,evap) + include "netcdf.inc" + integer im,jm,km,i,j,k + integer status, ncid + integer :: id_lat,id_lon, & + id_temp,id_salt,id_u,id_v,id_wt, & + id_eta_t,id_sfc_hflux,id_pme,id_mld,id_tau_x,id_tau_y, & + id_sss,id_ssu,id_ssv,id_speed, & + id_sensible,id_latent,id_sw,id_lw,id_lprec,id_evap + + real, dimension(im,jm,km) :: t,s,u,v + real, dimension(im,jm) :: eta,sfcflx,pme,mld,taux,tauy,LwLatSens + real, dimension(im,jm) :: sss,ssu,ssv,speed,sensible,latent,sw,lw + real, dimension(im,jm) :: lprec,evap + real, dimension(im) :: lon + real, dimension(jm) :: lat + real, dimension(km,jm,im) :: tmp3D + real, dimension(jm,im) :: tmp2D + character(len=300) :: ocean_file + + real, parameter :: c2k=273.15 + real :: undef + + undef=-1.0E+34 + status = nf_open(ocean_file, NF_NOWRITE, ncid) + if(status.ne.NF_NOERR) stop 'cannot open ocean_file' + + status = nf_inq_varid(ncid, 'temp' , id_temp) + status = nf_inq_varid(ncid, 'so' , id_salt) + status = nf_inq_varid(ncid, 'uo' , id_u ) + status = nf_inq_varid(ncid, 'vo' , id_v ) + status = nf_inq_varid(ncid, 'SSH' , id_eta_t) + status = nf_inq_varid(ncid, 'LwLatSens',id_sfc_hflux) + status = nf_inq_varid(ncid, 'Heat_PmE', id_pme) + status = nf_inq_varid(ncid, 'mld' , id_mld) + status = nf_inq_varid(ncid, 'taux' , id_tau_x) + status = nf_inq_varid(ncid, 'tauy' , id_tau_y) + status = nf_inq_varid(ncid, 'lon' , id_lon) + status = nf_inq_varid(ncid, 'lat' , id_lat) + status = nf_inq_varid(ncid, 'SSS' , id_sss) + status = nf_inq_varid(ncid, 'SSU' , id_ssu) + status = nf_inq_varid(ncid, 'SSV' , id_ssv) + status = nf_inq_varid(ncid, 'speed' , id_speed) + status = nf_inq_varid(ncid, 'sensible', id_sensible) + status = nf_inq_varid(ncid, 'latent' , id_latent) + status = nf_inq_varid(ncid, 'SW' , id_sw) + status = nf_inq_varid(ncid, 'LW' , id_lw) + status = nf_inq_varid(ncid, 'lprec' , id_lprec) + status = nf_inq_varid(ncid, 'evap' , id_evap) + +! read variable + status = nf_get_var_real(ncid, id_lon, lon) + status = nf_get_var_real(ncid, id_lat, lat) + status = nf_get_var_real(ncid, id_temp, t) !temp + status = nf_get_var_real(ncid, id_salt, s) !salt + status = nf_get_var_real(ncid, id_u, u) !u + status = nf_get_var_real(ncid, id_v, v) !v + status = nf_get_var_real(ncid, id_eta_t, eta) !eta_t + status = nf_get_var_real(ncid, id_sfc_hflux, LwLatSens) !sfc_hflux + status = nf_get_var_real(ncid, id_pme, pme) !pme + status = nf_get_var_real(ncid, id_mld, mld) !mld + status = nf_get_var_real(ncid, id_tau_x, taux) !tau_x + status = nf_get_var_real(ncid, id_tau_y, tauy) !tau_y + status = nf_get_var_real(ncid, id_sss, sss) !sss + status = nf_get_var_real(ncid, id_ssu, ssu) !ssu + status = nf_get_var_real(ncid, id_ssv, ssv) !ssv + status = nf_get_var_real(ncid, id_speed, speed) !speed + status = nf_get_var_real(ncid, id_sensible, sensible) !sensible + status = nf_get_var_real(ncid, id_latent, latent) !latent + status = nf_get_var_real(ncid, id_sw, sw) !sw + status = nf_get_var_real(ncid, id_lw, lw) !lw + status = nf_get_var_real(ncid, id_lprec, lprec) !lprec + status = nf_get_var_real(ncid, id_evap, evap) !evap + +! status = nf_get_var_real(ncid, id_fprec, fprec) !fprec +! status = nf_get_var_real(ncid, id_lrunoff, lrunoff) !lrunoff +! status = nf_get_var_real(ncid, id_frunoff, frunoff) !frunoff + + sfcflx=SW+LwLatSens + +! convert all temps in Celcius that are read in to Kelvin below.. + + t=t+c2k + + return + + end subroutine read_ocn + + subroutine flip_ijk(im,jm,km,datain,dataout) + implicit none + integer :: im,jm,km,i,j,k + real, intent(out), dimension(im,jm,km) :: dataout + real, intent(in), dimension(km,jm,im) :: datain + do k=1,km + do j=1,jm + do i=1,im + dataout(i,j,k)=datain(k,j,i) + enddo + enddo + enddo + + return + end subroutine flip_ijk + + subroutine flip_ij(im,jm,datain,dataout) + implicit none + integer :: im,jm,i,j + real, intent(out), dimension(im,jm) :: dataout + real, intent(in), dimension(jm,im) :: datain + + do j=1,jm + do i=1,im + dataout(i,j)=datain(j,i) + enddo + enddo + + return + end subroutine flip_ij + + subroutine set_undef(im,jm,spv,undef,data) + implicit none + integer :: im,jm,i,j + real :: spv,undef + real, intent(inout), dimension(im,jm) :: data + + do j=1,jm + do i=1,im + if (data(i,j) .GE. spv) data(i,j)=undef + enddo + enddo + + return + end subroutine set_undef + + subroutine read_ice(im,jm,hi_h,hs_h,aice_h,ts_h,uvel_h,vvel_h,icefile) + + include "netcdf.inc" + + character(len=300) :: icefile + integer :: status,ncid + integer :: i,j + integer :: im,jm + integer :: id_hi_h,id_hs_h,id_tsfc_h,id_aice_h,id_sst_h,id_uvel_h,id_vvel_h + + real :: spv_ci,undef + real, dimension(im,jm) :: hi_h,hs_h,Tsfc_h,aice_h,sst_h,ts_h,uvel_h,vvel_h,fi,fw + + spv_ci=1.0e+30 + undef=-1.0E+34 + print *, 'icefile:', icefile + status = nf_open(icefile, NF_NOWRITE, ncid) + print *, 'status:', status + if(status.ne.NF_NOERR) stop 'cannot open ice_file' + + status = nf_inq_varid(ncid, 'hi_h ', id_hi_h) + status = nf_inq_varid(ncid, 'hs_h ', id_hs_h) + status = nf_inq_varid(ncid, 'Tsfc_h ', id_tsfc_h) + status = nf_inq_varid(ncid, 'aice_h ', id_aice_h) + status = nf_inq_varid(ncid, 'sst_h ', id_sst_h) + status = nf_inq_varid(ncid, 'uvel_h ', id_uvel_h) + status = nf_inq_varid(ncid, 'vvel_h ', id_vvel_h) + + status = nf_get_var_real(ncid, id_hi_h ,hi_h) + status = nf_get_var_real(ncid, id_hs_h ,hs_h) + status = nf_get_var_real(ncid, id_tsfc_h ,Tsfc_h) + status = nf_get_var_real(ncid, id_aice_h ,aice_h) + status = nf_get_var_real(ncid, id_sst_h ,sst_h) + status = nf_get_var_real(ncid, id_uvel_h ,uvel_h) + status = nf_get_var_real(ncid, id_vvel_h ,vvel_h) + + do j=1,jm + do i=1,im + if (aice_h(i,j) < spv_ci) then + if (aice_h(i,j) > 1.0) then + print *,'Warning: aice_h>1:',aice_h(i,j) + aice_h(i,j)=1.0 + endif + fi(i,j)=aice_h(i,j) + else + fi(i,j)=0.0 + endif + fw=1.0-fi(i,j) + ts_h(i,j)=fw(i,j)*sst_h(i,j)+fi(i,j)*Tsfc_h(i,j) + enddo + enddo + + + return + end subroutine read_ice + + subroutine diag(im,jm,km,icefile,ocnfile, & + isyr,ismth,isday,ishr,iyr,imth,iday,ihr,mfh,mfhout, & + flonw,flone,dlon,flatn,flats,dlat,imo,jmo, & + outfile,mfcstcpl,igenocnp) + + integer nvar,ko,ki,kk,ndtc,mfcstcpl,igenocnp +! integer mkmoc,nreg + real hfc + + parameter(nvar=37,ko=40,ki=5) + parameter(ndtc=7) +! + character*300 cicefile,icefile,ocnfile,outfile +! character*120 mocfile + character*120 template_file,template_inv,metadata,template_var + character*10 datecode + character*4 level4 + character*8 hr8 + character*80 levelm(nvar) + character*80 levelcode,ftime + character*5 varcode(nvar) + + integer im,jm,km + integer imo,jmo + integer iyr,imth,iday,ihr,mfh,mfhout + integer isyr,ismth,isday,ishr + integer hrdif + integer isdate(8),iedate(8) + real dlat,dlon,flats,flatn,flonw,flone +! real tripolat,dtripolat +! integer jtripolat + real factor,undef,spv_ci,spv_pme,spv_tau,val + integer i,j,k,ierr,ilev,ind,iret,nv,ndata,nr,nundef,kreg + integer nx,ny + real datedif(5) +! + real*8, dimension(im,jm) :: hi,hs,ts,t1,t2,fi,alb,ui,vi,sst,saltf +! + real, dimension(im,jm) :: hi_ci,hs_ci,ts_ci,fi_ci,ui_ci,vi_ci +! + real, dimension(im,jm,km) :: t,s,u,v,w,vv +! real, dimension(im,jm,km) :: dckt,dcks,vfc + real, dimension(im,jm) :: eta,sfcflx,pme,mld,taux,tauy,uice,vice + real, dimension(im,jm) :: sss,ssu,ssv,speed,sensible,latent,sw,lw + real, dimension(im,jm) :: lprec,evap + real, dimension(im,jm) :: varice + real, dimension(im) :: lon + real, dimension(jm) :: lat +! + real, dimension(imo,jmo) :: grid,grdtmp,varsfc + real, dimension(imo,jmo,km) :: varocn,tocn,socn + + real zt(ko) + real zw(ko) + real dtc(ndtc) + real grid2(imo*jmo) +! + real, dimension(nvar) :: fac + integer, dimension(nvar) :: kpds5,kpds6,kpds7,kpds22 + integer, dimension(ko) :: levs + + integer, parameter :: kpds_dim=200 + integer, dimension(kpds_dim) :: KPDS,KGDS,JPDS,JGDS + logical*1 lbms(imo,jmo) + logical :: climate = .false. +! new wgrib2api requires this + integer, parameter :: regex=1 +! + data dtc/2.5,5.,10.,15.,20.,25.,28./ +! +! NV kpds5=Variable (Parameter Table) +! http://www.nco.ncep.noaa.gov/pmb/docs/on388/table2.html#TABLE128 +! +! 1. 13=Potential temperature (2) +! 2. 88=Salinity (2) +! 3. 49=u-component of current (2) +! 4. 50=v-component of current (2) +! 5. 40=Geometric Vertical velocity (2) +! 6. 124=Momentum flux, u component (2) +! 7. 125=Momentum flux, v component (2) +! 8. 198=Sea Surface Height Relative to Geoid (129) +! 9. 91=Ice concentration (2) +! 10. 92=Ice thickness (2) +! 11. 66=Snow depth (2) +! 12. 11=Surface Temperature over Water and Ice(2) +! 13. 95=u-component of ice drift (2) +! 14. 96=v-component of ice drift (2) +! 15. 188=Evaporation - Precipitation (2) +! 16. 202=Total downward heat flux at surface (downward is positive) (129) +! 17. 195=Geometric Depth Below Sea Surface (129) +! 18. 195=Geometric Depth Below Sea Surface (129) +! 19. 197=Ocean Heat Content (129) +! 20. 194=Tropical Cyclone Heat Potential (129) +! 21. 195=Geometric Depth Below Sea Surface for the 2.5C isotherm (129) +! 22. 195=Geometric Depth Below Sea Surface for the 5C isotherm (129) +! 23. 195=Geometric Depth Below Sea Surface for the 10C isotherm (129) +! 24. 195=Geometric Depth Below Sea Surface for the 15C isotherm (129) +! 25. 195=Geometric Depth Below Sea Surface for the 20C isotherm (129) +! 26. 195=Geometric Depth Below Sea Surface for the 25C isotherm (129) +! 27. 195=Geometric Depth Below Sea Surface for the 28C isotherm (129) +! 28. 88=Sea Surface Salinity (2) +! 29. 49=Sea Surface u-current (2) +! 30. 50=Sea Surface v-current (2) +! 31. 32=Sea Surface speed (2) +! 32. 122=Sensible Heat (2) +! 33. 121=Latent Heat (2) +! 34. 111=Net surface Downward Short Wave flux (2) +! 35. 112=Net surface Downward Long Wave flux (2) +! 36. 59=Precipitation (2) +! 37. 57=Evaporation (2) +! + data kpds5/ 13, 88, 49, 50, 40,124,125,198, 91, 92, & + 66, 11, 95, 96,188,202,195,195,197,194, & + 195,195,195,195,195,195,195, 88, 49, 50, & + 32,122,121,111,112, 59, 57/ + + data kpds6/ 160,160,160,160,160, 1, 1, 1, 1, 1, & + 1, 1, 1, 1, 1, 1,237,238,236,239, & + 235,235,235,235,235,235,235, 1, 1, 1, & + 1, 1, 1, 1, 1, 1, 1/ + + data kpds7/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & + 0, 0, 0, 0, 0, 0, 0, 0, 30,260, & + 25, 50,100,150,200,250,280, 0, 0, 0, & + 0, 0, 0, 0, 0, 0, 0/ +!------------------------------------------------------------------- +! Xingren: check why fac=273.15 for Ice temperature +! check why fac=-8.64e6 for evap minus precip +!------------------------------------------------------------------- + data fac/ 0.0, 0.001,1.0,1.0, 1.0, 1.0, 1.0,1.0,1.0,1.0, & + 1.0,273.15,1.0,1.0,-8.64e6, 1.0, 1.0,1.0,1.0,1.0, & + 1.0, 1.0,1.0,1.0, 1.0, 1.0, 1.0,1.0,1.0,1.0, & + 1.0, 1.0,1.0,1.0, 1.0, 1.0, 1.0/ + + data kpds22/ 2, 5, 3, 3, 9, 3, 3, 3, 3, 2, & + 3, 2, 3, 3, 3, 3, 0, 0, -5, -4, & + 0, 0, 0, 0, 0, 0, 0, 5, 3, 3, & + 0, 0, 0, 0, 0, 3, 3/ +! + data levs/ 5, 15, 25, 35, 45, 55, 65, 75, & + 85, 95, 105, 115, 125, 135, 145, 155, & + 165, 175, 185, 195, 205, 215, 225, 238, & + 262, 303, 366, 459, 584, 747, 949,1193, & + 1479,1807,2174,2579,3016,3483,3972,4478/ +! + data spv_tau/-1.0E+5/ + data spv_ci/1.0E+29/ + data spv_pme/-1.0E+10/ + data undef/-1.0E+34/ +! + data zt/ 5., 15., 25., 35., 45., 55., 65., 75., & + 85., 95., 105., 115., 125., 135., 145., 155., & + 165., 175., 185., 195., 205., 215., 225., 238., & + 262., 303., 366., 459., 584., 747., 949.,1193., & + 1479.,1807.,2174.,2579.,3016.,3483.,3972.,4478./ +! + data zw/ 10., 20., 30., 40., 50., 60., 70., 80., & + 90., 100., 110., 120., 130., 140., 150., 160., & + 170., 180., 190., 200., 210., 220., 232., 250., & + 283., 335., 413., 522., 666., 848.,1072.,1337., & + 1643.,1991.,2377.,2798.,3250.,3728.,4225.,4737./ +! + data levelm/' m below sea level', ' m below sea level', & + ' m below sea level', ' m below sea level', & + ' m below sea level', & + 'surface', 'surface', 'surface', 'surface', & + 'surface', 'surface', 'surface', 'surface', & + 'surface', 'surface', 'surface', & + 'bottom of ocean mixed layer', & + 'bottom of ocean isothermal layer', & + '0-300 m ocean layer', & + 'layer ocean surface and 26C ocean isothermal level', & + '2.5C ocean isotherm', & + '5C ocean isotherm', & + '10C ocean isotherm', & + '15C ocean isotherm', & + '20C ocean isotherm', & + '25C ocean isotherm', & + '28C ocean isotherm', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface', & + 'surface'/ + + data varcode/'POT', 'SALTY', 'UOGRD', 'VOGRD', 'DZDT', & + 'UFLX', 'VFLX', 'SSHG', 'ICEC', 'ICETK', & + 'SNOD', 'TMP', 'UICE', 'VICE', 'EMNP', & + 'THFLX', 'DBSS', 'DBSS', 'OHC', 'TCHP', & + 'DBSS', 'DBSS', 'DBSS', 'DBSS', 'DBSS', & + 'DBSS', 'DBSS', & + 'SALTY', 'UOGRD', 'VOGRD','SPEED','SHTFL', & + 'LHTFL', 'NSWRS', 'NLWRS','PRATE','EVP'/ +! + template_file = 'iceocnpost.g2' + template_inv = '@mem:0' + +! find grid size to make sure + iret = grb2_mk_inv(template_file, template_inv) + if (iret.ne.0) stop 1 + +! search using variable and regular date YYYYMMDDHH + template_var = '^1:' +! Based on Wesley's suggestion +! iret = grb2_inq(template_file,template_inv,template_var,nx=nx,ny=ny) + iret = grb2_inq(template_file,template_inv,template_var,nx=nx,ny=ny,regex=regex) + if (iret.ne.1) then + if (iret.eq.0) write(*,*) 'could not find message' + if (iret.gt.1) write(*,*) 'found multiple messages ', iret + stop 2 + endif + +! + if (mfcstcpl.eq.1) climate = .true. +! + print *,'im = ',im + print *,'jm = ',jm + print *,'km = ',km + + print *,'imo = ',imo + print *,'jmo = ',jmo + + print *,'IGEN_OCNP = ',igenocnp + print *,'mfcstcpl = ',mfcstcpl + print *,'climate = ',climate + + isdate=0 + isdate(1)=isyr + isdate(2)=ismth + isdate(3)=isday + isdate(5)=ishr + print *,'isdate ',isdate + + iedate=0 + iedate(1)=iyr + iedate(2)=imth + iedate(3)=iday + iedate(5)=ihr + + call w3difdat(iedate,isdate,2,datedif) + hrdif=datedif(2) + write(hr8,'(i8)') hrdif +! print *,'datedif',datedif + print *,'hrdif',hrdif + + write(datecode,'(i4.4,i2.2,i2.2,i2.2)') isyr, ismth, isday, ishr + print*, 'datecode=',datecode + + call read_ocn(im,jm,km,lon,lat, & + t,s,u,v,eta,sfcflx,pme,mld,taux,tauy,ocnfile, & + sss,ssu,ssv,speed,sensible,latent,sw,lw,lprec,evap) + print *,'after call read_ocn' + call read_ice(im,jm,hi_ci,hs_ci,fi_ci,ts_ci,ui_ci,vi_ci,icefile) + print *,'after call read_ice' + uice(:,:)=ui_ci(:,:) + vice(:,:)=vi_ci(:,:) + + do k=1,80 + ftime(k:k)=' ' + enddo +! ftime='6 hour fcst' + + kpds(1)=7 + if (igenocnp.GT.0) then + kpds(2)=igenocnp + else + kpds(2)=98 + endif + kpds(3)=10 + kpds(4)=192 + kpds(8)=mod(isyr-1,100)+1 + kpds(9)=ismth + kpds(10)=isday + kpds(11)=ishr + kpds(12)=0 + if (mfhout == 1) then + kpds(13)=1 + else if (mfhout == 3) then + kpds(13)=10 + else if (mfhout == 6) then + kpds(13)=11 + else if (mfhout == 12) then + kpds(13)=12 + else if (mfhout == 24) then + kpds(13)=2 + else + print *,'invalid mhout, must be one of (1 3 6 12 24).' + stop + endif + if (climate) then + kpds(13)=1 + kpds(14)=mfh + print *,'kpds(14)=',kpds(14) + print *,'mfhout=',mfhout + kpds(15)=0 + kpds(16)=10 + ftime=hr8 // ' hour fcst' + print *, 'ftime:', ftime + else + if (mfh > 1530) then + kpds(13)=1 + kpds(14)=mfh + kpds(15)=0 + kpds(16)=10 + else + kpds(14)=mfh/mfhout-1 + kpds(15)=kpds(14)+1 + kpds(16)=3 + endif + endif + kpds(17)=0 + kpds(18)=1 + kpds(19)=2 + kpds(20)=0 + kpds(21)=((iyr-1)/100)+1 + kpds(23)=4 + kpds(24)=0 + kpds(25)=32 + + print*,'kpds:',kpds(1:25) +! + kgds(1)=0 + kgds(2)=imo + kgds(3)=jmo + kgds(4)=nint(flatn*1000.) + kgds(5)=nint(flonw*1000.) + kgds(6)=128 + kgds(7)=nint(flats*1000.) + kgds(8)=nint(flone*1000.) + kgds(9)=nint(dlon*1000.) + kgds(10)=nint(dlat*1000.) + kgds(11)=0 + kgds(12)=0 + kgds(13)=0 + kgds(14)=0 + kgds(15)=0 + kgds(16)=0 + kgds(17)=0 + kgds(18)=0 + kgds(19)=0 + kgds(20)=255 + kgds(21)=0 + kgds(22)=0 +! + print*,'kgds:',kgds(1:22) +! + ndata=imo*jmo +! + ind=0 + do nv=1,5 + factor=fac(nv) + kpds(22)=kpds22(nv) + print *,nv,' factor ',factor,' kpds22 ',kpds(22) + +!temp/potdsl... + if (nv.eq.1) then + varocn=t + do k=1,km + do j=1,jmo + do i=1,imo + if (varocn(i,j,k).LE.undef) then + tocn(i,j,k)=undef + else + tocn(i,j,k)=varocn(i,j,k) + endif + enddo + enddo + enddo + endif + +!salinity + if (nv.eq.2) then + varocn=s + do k=1,km + do j=1,jmo + do i=1,imo + socn(i,j,k)=varocn(i,j,k) + enddo + enddo + enddo + endif +!u-current + if (nv.eq.3) then + varocn=u + endif +!v-current + if (nv.eq.4) then + varocn=v + endif +!------------------------------------------------------------------- +! Xingren: +! w vertical velocity (not present in raw NetCDF file) +! so how can you compute the vertical velocity with the program below? +!------------------------------------------------------------------- + if (nv.eq.5) then + varocn=w + do k=1,km-1 + kk=km-k+1 + do j=1,jmo + do i=1,imo + if (varocn(i,j,k).LE.undef) then + varocn(i,j,k)=varocn(i,j,k+1) + else + varocn(i,j,k)=(varocn(i,j,k+1)*(zw(kk)-zt(kk)) & + +varocn(i,j,k)*(zt(kk)-zw(kk-1)))/(zw(kk)-zw(kk-1)) + endif + enddo + enddo + enddo + continue + endif + + do k=1,km + ind=ind+1 + ilev=levs(k) + +! flip N-S + do j=1,jmo + grdtmp(:,j)=varocn(:,jmo-j+1,k) + enddo + +! make bit-map.... + do j=1,jmo + do i=1,imo + val=grdtmp(i,j) + if (val.eq.undef) then + lbms(i,j) = .false. + grid2(i+(j-1)*nx)=9.999E+20 + else + if (nv.eq.1) then + grid(i,j)=val+factor + else + grid(i,j)=val*factor + endif + lbms(i,j) = .true. + grid2(i+(j-1)*nx)=grid(i,j) + endif + enddo + enddo + + print *,' record written ',ind,nv,k,grid(92,125),lbms(92,125) + kpds(5)=kpds5(nv) + kpds(6)=kpds6(nv) + kpds(7)=ilev + + write(level4,'(i4)') ilev + levelcode=level4 // levelm(nv) + print *, 'levelcode= ', levelcode + print *, 'trim(ftime):', trim(ftime) + metadata='d=' // datecode // ':' // trim(varcode(nv)) // ':' // trim(levelcode) // ':' // trim(ftime) // ':' + iret = grb2_wrt(outfile,template_file,1,data1=grid2,meta=metadata) + write(*,*) iret +! +!.. end level-loop + enddo +!.. end variable-loop + enddo + +!... now read and grib 5 surface records... +! + do nv=6,nvar + levelcode=levelm(nv) + print *, 'levelcode= ', levelcode + print *, 'process data for nv=',nv + factor=fac(nv) + kpds(22)=kpds22(nv) + print *,nv,' factor ',factor,' kpds22 ',kpds(22) + ind=ind+1 + kpds(5)=kpds5(nv) + kpds(6)=kpds6(nv) + kpds(7)=kpds7(nv) + if (nv .EQ. 8 .or. (nv.GE.16 .AND. nv.LE.27)) then + kpds(19)=129 + else if (nv .EQ. 15) then + kpds(19)=128 + else + kpds(19)=2 + endif +! taux + if (nv.eq.6) then + varsfc=taux + do j=1,jmo + do i=1,imo + if (varsfc(i,j) .LE. spv_tau) varsfc(i,j)=undef + enddo + enddo + endif +! tauy + if (nv.eq.7) then + varsfc=tauy + do j=1,jmo + do i=1,imo + if (varsfc(i,j) .LE. spv_tau) varsfc(i,j)=undef + enddo + enddo + endif +! eta + if (nv.eq.8) then + varsfc=eta + endif +! fi + if (nv.eq.9) then + varsfc=fi_ci + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! hi + if (nv.eq.10) then + varsfc=hi_ci + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! hs + if (nv.eq.11) then + varsfc=hs_ci + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! ts + if (nv.eq.12) then + varsfc=ts_ci + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! uice + if (nv.eq.13) then + varsfc=uice + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! vice + if (nv.eq.14) then + varsfc=vice + call set_undef(im,jm,spv_ci,undef,varsfc) + endif +! pme + if (nv.eq.15) then + varsfc=pme + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. spv_pme) varsfc(i,j)=undef + enddo + enddo + endif +! sfc_flx + if (nv.eq.16) then + varsfc=sfcflx + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! mld + if (nv.eq.17) then +! call mixed_layer(imo,jmo,km,tocn,socn,zt,varsfc,undef) + varsfc=mld + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! sfc isothm layer depth + if (nv.eq.18) then + call sfc_isothm_layer(imo,jmo,km,tocn,zt,varsfc,undef) + endif +! ocean heat content + if (nv.eq.19) then + call ocean_heat(imo,jmo,km,tocn,socn,zw,zt,varsfc,undef) + endif +! tropical cyc heat potential + if (nv.eq.20) then + call tchp26(imo,jmo,km,tocn,socn,zw,zt,varsfc,undef) + endif +! depth of 7 different isotherms... + if (nv.ge.21 .AND. nv.le.27) then + i=nv-20 + call isothm_layer(imo,jmo,km,dtc(i),tocn,zt,varsfc,undef) + endif +! sea surface salinity + if (nv.eq.28) then + varsfc=sss + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! sea surface u-current + if (nv.eq.29) then + varsfc=ssu + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! sea surface v-current + if (nv.eq.30) then + varsfc=ssv + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! sea surface speed + if (nv.eq.31) then + varsfc=speed + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! sensible heat + if (nv.eq.32) then + varsfc=sensible + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! latent heat + if (nv.eq.33) then + varsfc=latent + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! net downward shortwave radiation at the surface + if (nv.eq.34) then + varsfc=sw + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! net downward longwave radiation at the surface + if (nv.eq.35) then + varsfc=lw + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! precipitation rate + if (nv.eq.36) then + varsfc=lprec + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif +! evaporation + if (nv.eq.37) then + varsfc=evap + do j=1,jm + do i=1,im + if (varsfc(i,j) .LE. undef) varsfc(i,j)=undef + enddo + enddo + endif + + nundef=0 + do j=1,jmo + grdtmp(:,j)=varsfc(:,jmo-j+1) + enddo + do j=1,jmo + do i=1,imo + val=grdtmp(i,j) + if (val.eq.undef) then + lbms(i,j) = .false. + nundef=nundef+1 + grid2(i+(j-1)*nx)=9.999E+20 + else + if (nv.EQ.12) then + grid(i,j)=val+factor + else + grid(i,j)=val*factor + endif + lbms(i,j) = .true. + grid2(i+(j-1)*nx)=grid(i,j) + endif + enddo + enddo + if(nundef.eq.imo*jmo) then + print *,' record not written because of all undef ', & + ind,kpds(5),kpds(6),kpds(7) + else + print *,' record written ',ind,kpds(5),kpds(6),kpds(7), & + grid(92,125),lbms(92,125),factor + endif + print *,'nv= ', nv + metadata='d=' // datecode // ':' // trim(varcode(nv)) // ':' // trim(levelcode) // ':' // trim(ftime) // ':' + iret = grb2_wrt(outfile,template_file,1,data1=grid2,meta=metadata) + write(*,*) iret + + enddo + + return + end subroutine diag + + subroutine isothm_layer(im,jm,km,dtc,temp,zlev,zisothm,undef) + + real, parameter :: c2k=273.15 + integer inumc,im,jm,km + integer i,j,k + real dtc + real, dimension(km) :: tz,zlev + real, dimension(im,jm) :: zisothm + real, dimension(im,jm,km) :: temp + real a,b,tc,undef + + tc=dtc+c2k + + do j=1,jm + do i=1,im + + zisothm(i,j)=undef + if (temp(i,j,1) .GE. tc) then + do k=1,km + tz(k)=temp(i,j,k) + enddo + do k=2,km + if (tz(k) .LT. -3.0) go to 111 + if (tz(k) .LT. tc) then + a = (tz(k)-tc) / (tz(k)-tz(k-1)) + b = (tc-tz(k-1)) / (tz(k)-tz(k-1)) + zisothm(i,j)=a*zlev(k-1)+b*zlev(k) + go to 111 + endif + enddo + endif + 111 continue + enddo + enddo + + return + end subroutine isothm_layer + + subroutine mixed_layer(im,jm,km,temp,salt,zlev,mld,undef) + + real, parameter :: disot=0.8, c2k=273.15 + integer im,jm,km + integer i,j,k,kmsk,kbm,kbp,krf + real, dimension(km) :: zlev,plev,sa,ta,th,rho + real, dimension(im,jm) :: mld + real, dimension(im,jm,km) :: temp,salt + real a,b,deltarho,dr,rb,undef + + do k=1,km + plev(k) = press(zlev(k),980.0) + enddo + + do j=1,jm + do i=1,im + kmsk = 0 + do k=1,km + if (temp(i,j,k).GT.0.0 .AND. salt(i,j,k).GT.0.0) then + ta(k) = temp(i,j,k)-c2k + sa(k) = salt(i,j,k) + kmsk = k + endif + enddo + + if (kmsk.EQ.0 .OR. ta(1).LT.-3.0) then + mld(i,j)=undef + else + deltarho = (density(0.0,ta(1)-disot,sa(1)) & + - density(0.0,ta(1),sa(1))) + do k=1,kmsk + th(k) = theta(plev(k),ta(k),sa(k),0.0) + rho(k) = density(0.0,th(k),sa(k)) - 1000.0 + enddo + krf = 1 + kbm = 0 + kbp = 0 + do k = krf,kmsk + if ((rho(k)-rho(krf)) .GE. deltarho) then + kbp = k + exit + endif + enddo + if (kbp .LE. 1) then + mld(i,j) = undef + else + kbm = kbp - 1 + rb = rho(krf) + deltarho + dr = rho(kbp) - rho(kbm) + a = (rho(kbp) - rb) / dr + b = (rb - rho(kbm)) / dr + mld(i,j) = zlev(kbm)*a + zlev(kbp)*b + endif + endif + enddo + enddo + + end subroutine mixed_layer + + subroutine sfc_isothm_layer(im,jm,km,temp,zlev,sitd,undef) + + real, parameter :: disot=0.8 + integer im,jm,km + integer i,j,k + real, dimension(im,jm) :: sitd + real, dimension(im,jm,km) :: temp + real, dimension(km) :: zlev,tz + real a,b,tc,undef + + do j=1,jm + do i=1,im + + sitd(i,j)=undef + + if (temp(i,j,1).GE.0.0) then + tc=temp(i,j,1)-disot + do k=1,km + tz(k)=temp(i,j,k) + enddo + do k=2,km + if (tz(k).LT.0.0) go to 112 + if (tz(k).LT.tc) then + a = (tz(k)-tc) / (tz(k)-tz(k-1)) + b = (tc-tz(k-1)) / (tz(k)-tz(k-1)) + sitd(i,j) = a*zlev(k-1) + b*zlev(k) + go to 112 + endif + enddo + endif + + 112 continue + + enddo + enddo + + return + end subroutine sfc_isothm_layer + + subroutine ocean_heat(im,jm,km,temp,salt,zblev,zlev,ocnhc,undef) + + integer, parameter :: kmh=26 + real, parameter :: c2k=273.15 + integer im,jm,km + integer i,j,k + real, dimension(km) :: zblev,zlev,plev + real, dimension(im,jm) :: ocnhc + real, dimension(im,jm,km) :: salt,temp + real dptlyr,rk,sk,tk,undef + real pk,rhm,rhp,tempk,zk + + k=kmh + zk=0.5*(300.0+zblev(k-1)) + pk=press(zk,980.0) + rhm = (zk-zlev(k-1))/(zlev(k)-zlev(k-1)) + rhp = (zlev(k)-zk)/(zlev(k)-zlev(k-1)) + + do k=1,km + plev(k) = press(zlev(k),980.0) + enddo + + do j=1,jm + do i=1,im + + ocnhc(i,j)=undef + + if (temp(i,j,kmh).GT.0.0 .AND. salt(i,j,kmh).GT.0.0) then + ocnhc(i,j)=0. + do k=1,kmh-1 + tk=temp(i,j,k)-c2k +! print *,'tk= ',tk + sk=salt(i,j,k) + rk=density(plev(k),tk,sk) + if (k .eq. 1) then + dptlyr=zblev(k) + else + dptlyr=zblev(k)-zblev(k-1) + endif + ocnhc(i,j)=ocnhc(i,j) + rk*temp(i,j,k)*dptlyr + enddo + k=kmh + tempk=rhp*temp(i,j,k-1) + rhm*temp(i,j,k) + tk=tempk - c2k + sk=rhp*salt(i,j,k-1) + rhm*salt(i,j,k) + rk=density(pk,tk,sk) + dptlyr=300.0-zblev(k-1) + ocnhc(i,j)=ocnhc(i,j)+rk*tempk*dptlyr + ocnhc(i,j)=ocnhc(i,j)*3996. + endif + enddo + enddo + + return + end subroutine ocean_heat + + subroutine tchp26(im,jm,km,temp,salt,zblev,zlev,ocnhcp,undef) + + real, parameter :: c2k=273.15, t26=26.0 + integer im,jm,km + integer i,j,k,k26 + real, dimension(km) :: zblev,zlev,plev,tz + real, dimension(im,jm) :: ocnhcp,z26isothm + real, dimension(im,jm,km) :: salt,temp + real dptlyr,rk,sk,tk,undef + real rhm,rhp,pk,zk + real a,b,skk,skm,tc,z26 + logical*1 lbms(im,jm) + + tc=c2k+t26 + + do k=1,km + plev(k) = press(zlev(k),980.0) + enddo + + do j=1,jm + do i=1,im + + z26isothm(i,j)=undef + lbms(i,j)=.false. + if (temp(i,j,1) .GE. tc) then + do k=1,km + tz(k)=temp(i,j,k) + enddo + k = 1 + do while (tz(k).GE.tc) + k26 = k + if (k.EQ.km) exit + k = k + 1 + enddo + k = k26 + if (tz(k) .GT. tc) then + if (k.LT.km .AND. tz(k+1).GT.0.0) then + k = k + 1 + a = (tz(k)-tc) / (tz(k)-tz(k-1)) + b = (tc-tz(k-1)) / (tz(k)-tz(k-1)) + z26isothm(i,j) = a*zlev(k-1) + b*zlev(k) + lbms(i,j)=.true. + else if (k.GE.2 .AND. tz(k).LT.tz(k-1)) then + a = (tz(k)-tc) / (tz(k)-tz(k-1)) + b = (tc-tz(k-1)) / (tz(k)-tz(k-1)) + z26 = a*zlev(k-1) + b*zlev(k) + if (z26.LE.zblev(k)) then + z26isothm(i,j) = z26 + lbms(i,j)=.true. + endif + endif + else if (tz(k).EQ.tc) then + z26isothm(i,j) = zlev(k) + lbms(i,j)=.true. + endif + endif + + enddo + enddo + +! +!---------- get ocean heat potential relative to 26C (TCHP) ------------ +! + do j=1,jm + do i=1,im + + if (temp(i,j,1) .GT. 0.0) then + ocnhcp(i,j)=0.0 + else + ocnhcp(i,j)=undef + cycle + endif + + if (lbms(i,j)) then ! we have water above 26c + + z26 = z26isothm(i,j) +! +! case where Z26 is within the topmost layer +! + if (z26 .LE. zblev(1)) then + tk=temp(i,j,1)-c2k + if (salt(i,j,1) .GT. 0.0) then + sk=salt(i,j,1) + else + sk=35. ! fake salinity + endif + rk=density(plev(1),tk,sk) + dptlyr=z26 + ocnhcp(i,j) = rk*(tk-t26)*dptlyr*3996. +! +! case where z26 is below the top layer and above the bottom +! + else + k26 = 1 + do k=2,km + if (z26.GT.zblev(k-1) .AND. z26.LE.zblev(k)) k26=k + enddo + + ocnhcp(i,j)=0.0 + do k=1,k26-1 + tk=temp(i,j,k)-c2k + if (salt(i,j,K) .GT. 0.0) then + sk=salt(i,j,k) + else + sk=35. ! fake salinity + endif + rk=density(plev(k),tk,sk) + if (k .EQ. 1) then + dptlyr=zblev(1) + else + dptlyr=zblev(k)-zblev(k-1) + endif + ocnhcp(i,j)=ocnhcp(i,j)+rk*(tk-26.0)*dptlyr + enddo + k=k26 + zk=0.5*(z26+zblev(k-1)) + pk=press(zk,980.0) + rhm = (zk-zlev(k-1))/(zlev(k)-zlev(k-1)) + rhp = (zlev(k)-zk)/(zlev(k)-zlev(k-1)) + tk=rhp*temp(i,j,k-1) + rhm*temp(i,j,k) - c2k + if (salt(i,j,k-1) .GT. 0.0) then + skm=salt(i,j,k-1) + else + skm=35. ! fake salinity + endif + if (salt(i,j,k) .GT. 0.0) then + skk=salt(i,j,k) + else + skk=35. ! fake salinity + endif + sk=(rhp*skm + rhm*skk) + rk=density(pk,tk,sk) + dptlyr=z26-zblev(k-1) + ocnhcp(i,j)=ocnhcp(i,j)+rk*(tk-26.0)*dptlyr + ocnhcp(i,j)=ocnhcp(i,j)*3996. + endif +! +! case where temperature is above 26C down to the bottom +! + else if ((temp(i,j,1)-c2k) .GT. t26) then + ocnhcp(i,j)=0.0 + do k=1,km + if (temp(i,j,k) .GT. undef) then + tk=temp(i,j,k)-c2k + if (salt(i,j,k) .GT. 0.0) then + sk=salt(i,j,k) + else + sk=35. ! fake salinity + endif + rk=density(plev(k),tk,sk) + if (k .EQ. 1) then + dptlyr=zblev(1) + else + dptlyr=zblev(k)-zblev(k-1) + endif + ocnhcp(i,j)=ocnhcp(i,j)+rk*(tk-26.0)*dptlyr + endif + enddo + ocnhcp(i,j)=ocnhcp(i,j)*3996. + endif + + enddo + enddo + + return + end subroutine tchp26 + + function press(z, g) + +! copy from cfs_ocean_time.f and modified +! depth (z) in meters and grav acc'l (g) in cm/sec**2 + + integer, parameter :: itr=20 + integer i + real p, a0, z, g, press + real(kind=8) :: e, ae, es +! + p = z*(1.0076+z*(2.3487e-6-z*1.2887e-11)) + e = zeta(p,g)-z + ae = abs(e) + es = ae*2. + do i = 1,itr + a0 = 0.972643+p*(1.32696e-5-p*(6.228e-12+p*1.885e-16)) + a0 = a0/(1.0+1.83e-5*p) + p = p-((g+1.113e-4*p)/a0)*e*0.001 + es = ae + e = zeta(p,g)-z + ae = abs(e) + if (ae .le. 0.01) exit + enddo +! + press = p +! + end function press + + function zeta(p, glat) +! +! copy from cfs_ocean_time.f and modified + + real p, glat, z, zeta + + z = ((-3.434e-12*p+1.113e-7)*p+0.712953)*p+14190.7*log(1.0+1.83e-5*p) + z = (z/(glat+1.113e-4*p))*1000. + + zeta = z +! + end function zeta + + function density(prs, tmp, sal) +! +! copy from cfs_ocean_time.f and modified +! Density is in units of kg/m**3 (1 g/cm**3 = 1000 kg/m**3) + + real density, prs, tmp, sal + real p, t, s, kstp, k0, kw, d0, dw +! + s = sal + t = tmp + p = prs/10.00 +! + kw = 19652.21+(148.4206-(2.327105-(1.360477e-2-5.155288e-5*t)*t)*t)*t +! + k0 = kw+s*(54.6746-(0.603459-(1.09987e-2-6.1670e-5*t)*t)*t) & + +sqrt(s*s*s)*(7.944e-2+(1.6483e-2-5.3009e-4*t)*t) +! + kstp = k0+p*((3.239908+(1.43713e-3+(1.16092e-4-5.77905e-7*t)*t)*t) & + +s*(2.2838e-3-(1.0981e-5+1.6078e-6*t)*t) & + +sqrt(s*s*s)*1.91075e-4 & + +p*((8.50935e-5-(6.12293e-6-5.2787e-8*t)*t) & + -s*(9.9348e-7-(2.0816e-8+9.1697e-10*t)*t))) +! + dw = 999.842594+(6.793952e-2-(9.095290e-3-(1.001685e-4 & + -(1.120083e-6-6.536332e-9*t)*t)*t)*t)*t +! + d0 = dw+s*(0.824493-(4.0899e-3-(7.6438e-5-(8.2467e-7 & + -5.3875e-9*t)*t)*t)*t) & + -sqrt(s*s*s)*(5.72466e-3-(1.0227e-4-1.6546e-6*t)*t) & + +s*s*4.8314e-4 +! + density = d0/(1.0-p/kstp) + + end function density + + function theta(p, t, s, pref) + + real(kind=8), parameter :: sqrt2 = 0.7071067811865475 + real theta, p,t, s, pref + real del_p, del_t1, del_t2, del_t3, del_t4, tp, th + + del_p = pref-p + del_t1 = del_p*atg(p,t,s) + tp = t+0.5*del_t1 + del_t2 = del_p*atg((p+0.5*del_p),tp,s) + tp = t+(-0.5+sqrt2)*del_t1+(1.0-sqrt2)*del_t2 + del_t3 = del_p*atg((p+0.5*del_p),tp,s) + tp = t-sqrt2*del_t2+(1.0+sqrt2)*del_t3 + del_t4 = del_p*atg(pref,tp,s) + th = (t+(del_t1+(1.0-sqrt2)*del_t2*2.0 & + + (1.0+sqrt2)*del_t3*2.0+del_t4)/6.0) + theta = th + + end function theta + + function atg(p, t, s) + + real atg, p, t, s, ds, a + + ds = s-35.0 + a = (((-2.1687e-16*t+1.8676e-14)*t-4.6206e-13)*p & + +((2.7759e-12*t-1.1351e-10)*ds+((-5.4481e-14*t & + +8.733e-12)*t-6.7795e-10)*t+1.8741e-8))*p & + +(-4.2393e-8*t+1.8932e-6)*ds & + +((6.6228e-10*t-6.836e-8)*t+8.5258e-6)*t+3.5803e-5 + + atg = a + + end function atg + + + end module regdiag_mod From 1b2538cc913a700d6fd159a70e9058d86a7bdb67 Mon Sep 17 00:00:00 2001 From: "lin.gan" Date: Wed, 3 Jun 2020 19:46:24 +0000 Subject: [PATCH 63/91] orion hera build test --- sorc/build_all.sh | 10 +++ sorc/build_all_reg2grb2.sh | 166 +------------------------------------ sorc/fv3gfs_build.cfg | 1 + 3 files changed, 12 insertions(+), 165 deletions(-) diff --git a/sorc/build_all.sh b/sorc/build_all.sh index ff4eca3079..1c4a41122c 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -207,6 +207,16 @@ echo " .... grib_util build not currently supported .... " #./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1 } +#------------------------------------ +# build reg2grb2 +#------------------------------------ +if [ $target = hera -o $target = orion ]; then + $Build_reg2grb2 && { + echo " .... Building reg2grb2 .... " + ./build_reg2grb2.sh > $logs_dir/build_reg2grb2.log 2>&1 +} +fi + echo;echo " .... Build system finished .... " exit 0 diff --git a/sorc/build_all_reg2grb2.sh b/sorc/build_all_reg2grb2.sh index 1c4a41122c..8c975ed436 100755 --- a/sorc/build_all_reg2grb2.sh +++ b/sorc/build_all_reg2grb2.sh @@ -1,5 +1,5 @@ #!/bin/sh -set -eu +set -xeu #------------------------------------ # USER DEFINED STUFF: # @@ -43,170 +43,6 @@ source ./machine-setup.sh > /dev/null 2>&1 . ./partial_build.sh -#------------------------------------ -# build libraries first -#------------------------------------ -$Build_libs && { -echo " .... Library build not currently supported .... " -#echo " .... Building libraries .... " -#./build_libs.sh > $logs_dir/build_libs.log 2>&1 -} - -#------------------------------------ -# build fv3 -#------------------------------------ -if [ $model = "coupled" ]; then - ./build_fv3_coupled.sh > $logs_dir/build_fv3_coupled.log 2>&1 -else - $Build_fv3gfs && { - echo " .... Building fv3 .... " - ./build_fv3.sh > $logs_dir/build_fv3.log 2>&1 - } -fi -#------------------------------------ -# build gsi -#------------------------------------ -$Build_gsi && { -echo " .... Building gsi .... " -./build_gsi.sh > $logs_dir/build_gsi.log 2>&1 -} - -#------------------------------------ -# build ncep_post -#------------------------------------ -$Build_ncep_post && { -echo " .... Building ncep_post .... " -./build_ncep_post.sh > $logs_dir/build_ncep_post.log 2>&1 -} - -#------------------------------------ -# build ufs_utils -#------------------------------------ -$Build_ufs_utils && { -echo " .... Building ufs_utils .... " -./build_ufs_utils.sh > $logs_dir/build_ufs_utils.log 2>&1 -} - -#------------------------------------ -# build gfs_wafs -#------------------------------------ -# Only build on WCOSS -if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then - $Build_gfs_wafs && { - echo " .... Building gfs_wafs .... " - ./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs .log 2>&1 - } -fi - -#------------------------------------ -# build sfcanl_nsttfchg -#------------------------------------ -$Build_sfcanl_nsttfchg && { -echo " .... Building gaussian_sfcanl and nst_tf_chg .... " -./build_sfcanl_nsttfchg.sh > $logs_dir/build_sfcanl_nsttfchg.log 2>&1 -} - -#------------------------------------ -# build enkf_chgres_recenter -#------------------------------------ -$Build_enkf_chgres_recenter && { -echo " .... Building enkf_chgres_recenter .... " -./build_enkf_chgres_recenter.sh > $logs_dir/build_enkf_chgres_recenter.log 2>&1 -} - -#------------------------------------ -# build tropcy_NEMS -#------------------------------------ -$Build_tropcy && { -echo " .... Building tropcy_NEMS .... " -./build_tropcy_NEMS.sh > $logs_dir/build_tropcy_NEMS.log 2>&1 -} - -#------------------------------------ -# build gdas -#------------------------------------ -$Build_gdas && { -echo " .... Building gdas .... " -./build_gdas.sh > $logs_dir/build_gdas.log 2>&1 -} - -#------------------------------------ -# build gfs_fbwndgfs -#------------------------------------ -$Build_gfs_fbwndgfs && { -echo " .... Building gfs_fbwndgfs .... " -./build_gfs_fbwndgfs.sh > $logs_dir/build_gfs_fbwndgfs.log 2>&1 -} - -#------------------------------------ -# build gfs_overpdtg2 -#------------------------------------ -$Build_gfs_overpdtg2 && { -echo " .... Building gfs_overpdtg2 .... " -./build_gfs_overpdtg2.sh > $logs_dir/build_gfs_overpdtg2.log 2>&1 -} - -#------------------------------------ -# build gfs_wintemv -#------------------------------------ -$Build_gfs_wintemv && { -echo " .... Building gfs_wintemv .... " -./build_gfs_wintemv.sh > $logs_dir/build_gfs_wintemv.log 2>&1 -} - -#------------------------------------ -# build gfs_bufrsnd -#------------------------------------ -$Build_gfs_bufrsnd && { -echo " .... Building gfs_bufrsnd .... " -./build_gfs_bufrsnd.sh > $logs_dir/build_gfs_bufrsnd.log 2>&1 -} - -#------------------------------------ -# build fv3nc2nemsio -#------------------------------------ -$Build_fv3nc2nemsio && { -echo " .... Building fv3nc2nemsio .... " -./build_fv3nc2nemsio.sh > $logs_dir/build_fv3nc2nemsio.log 2>&1 -} - -#------------------------------------ -# build regrid_nemsio -#------------------------------------ -$Build_regrid_nemsio && { -echo " .... Building regrid_nemsio .... " -./build_regrid_nemsio.sh > $logs_dir/build_regrid_nemsio.log 2>&1 -} - -#------------------------------------ -# build gfs_util -#------------------------------------ -# Only build on WCOSS -if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then - $Build_gfs_util && { - echo " .... Building gfs_util .... " - ./build_gfs_util.sh > $logs_dir/build_gfs_util.log 2>&1 - } -fi - -#------------------------------------ -# build prod_util -#------------------------------------ -$Build_prod_util && { -echo " .... prod_util build not currently supported .... " -#echo " .... Building prod_util .... " -#./build_prod_util.sh > $logs_dir/build_prod_util.log 2>&1 -} - -#------------------------------------ -# build grib_util -#------------------------------------ -$Build_grib_util && { -echo " .... grib_util build not currently supported .... " -#echo " .... Building grib_util .... " -#./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1 -} - #------------------------------------ # build reg2grb2 #------------------------------------ diff --git a/sorc/fv3gfs_build.cfg b/sorc/fv3gfs_build.cfg index 09c095e215..05f65b0052 100644 --- a/sorc/fv3gfs_build.cfg +++ b/sorc/fv3gfs_build.cfg @@ -21,5 +21,6 @@ Building gfs_util (gfs_util) .......................... yes Building prod_util (prod_util) ........................ no Building grib_util (grib_util) ........................ no + Building reg2grb2 (reg2grb2) .......................... yes # -- END -- From 1b678ac54cd23f21a2a898505168d6c9e964fa8a Mon Sep 17 00:00:00 2001 From: "lin.gan" Date: Thu, 4 Jun 2020 19:48:43 +0000 Subject: [PATCH 64/91] reg2grb2 Build on Hera and Orion --- modulefiles/modulefile.reg2grb2.hera | 3 +-- modulefiles/modulefile.reg2grb2.orion | 6 ++++-- sorc/build_reg2grb2.sh | 7 ++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/modulefiles/modulefile.reg2grb2.hera b/modulefiles/modulefile.reg2grb2.hera index 377cd9e6a8..5a1d7dc537 100644 --- a/modulefiles/modulefile.reg2grb2.hera +++ b/modulefiles/modulefile.reg2grb2.hera @@ -4,12 +4,11 @@ module load intel/18.0.5.274 module load netcdf/4.7.0 -module use -a $MOD_PATH module load ip/3.0.1 module load sp/2.0.2 module load w3nco/2.0.7 module load bacio/2.0.2 module load landsfcutil/2.1.0 +module use /apps/modules/modulefamilies/intel module load wgrib2/2.0.8 - set FCMP ifort diff --git a/modulefiles/modulefile.reg2grb2.orion b/modulefiles/modulefile.reg2grb2.orion index f92fd12ec1..17f16a3448 100644 --- a/modulefiles/modulefile.reg2grb2.orion +++ b/modulefiles/modulefile.reg2grb2.orion @@ -1,5 +1,5 @@ #%Module##################################################### -# reg2grb2 - hera +# reg2grb2 - orion ############################################################# export FCOMP=ifort module load intel/2020 @@ -8,5 +8,7 @@ module load ip/3.0.2 module load sp/2.0.3 module load w3nco/2.0.7 module load bacio/2.0.3 -module load landsfcutil/2.1.1 +module load landsfcutil/2.2.0 +module use -a /apps/contrib/NCEPLIBS/orion/modulefiles module load wgrib/2.0.8 +export WGRIB2_ROOT=/apps/contrib/NCEPLIBS/orion/NCEPLIBS/NCEPLIBS-external/build5/wgrib2/grib2 diff --git a/sorc/build_reg2grb2.sh b/sorc/build_reg2grb2.sh index 4d687ba946..60d1686dfa 100755 --- a/sorc/build_reg2grb2.sh +++ b/sorc/build_reg2grb2.sh @@ -1,12 +1,9 @@ #! /usr/bin/env bash set -x -# Check final exec folder exists -#if [ ! -d "../exec" ]; then -# mkdir ../exec -#fi +source ./machine-setup.sh > /dev/null 2>&1 -source ../modulefiles/modulefile.reg2grb2.hera +source ../modulefiles/modulefile.reg2grb2.$target export FCMP=${FCMP:-ifort} export FCMP95=$FCMP From 2a2a89aa3d6ba200ad95cea77c8f5c12c7be156f Mon Sep 17 00:00:00 2001 From: "lin.gan" Date: Fri, 5 Jun 2020 18:55:03 +0000 Subject: [PATCH 65/91] Merged and ready for test --- scripts/run_reg2grb2.sh | 42 +-- scripts/run_regrid.sh | 14 +- sorc/build_all.sh | 2 +- sorc/build_all_reg2grb2.sh | 58 ---- sorc/link_fv3gfs.sh | 24 +- ush/icepost.ncl | 382 ++++++++++++++++++++++++ ush/ocnpost.ncl | 587 +++++++++++++++++++++++++++++++++++++ 7 files changed, 986 insertions(+), 123 deletions(-) delete mode 100755 sorc/build_all_reg2grb2.sh create mode 100644 ush/icepost.ncl create mode 100644 ush/ocnpost.ncl diff --git a/scripts/run_reg2grb2.sh b/scripts/run_reg2grb2.sh index 417fcab793..2ee0349b3d 100755 --- a/scripts/run_reg2grb2.sh +++ b/scripts/run_reg2grb2.sh @@ -1,47 +1,11 @@ #!/bin/bash -set -euax +set -x -# Adapted from: Xingren Wu -# 2016-09-02 -# This scripts is for CFS/UGCS ocean post - -# Christopher Melhauser -# 2017-09-11 -# This script is for UGCS CICE5/MOM5 ocean and ice post - -# Xingren Wu -# 2017-10-23 -# Update and bug/fix -#module purge -#module load ics/12.1 -#module load prod_util/v1.0.7 -#module load NetCDF/4.2/serial -#module load prod_util/1.0.18 module load grib_util/1.1.1 module list -#### export NWPROD=${NWPROD:-/scratch1/NCEPDEV/global/glopara/svn/verif/global/tags/vsdb/nwprod} -# on Hera -#### module purge -#### module load intel/18.0.5.274 -#### module load netcdf/4.7.0 -#### module load wgrib2/2.0.8 -#### module use -a $MOD_PATH -#### module load ip/3.0.1 -#### module load sp/2.0.2 -#### module load w3nco/2.0.6 -#### module load bacio/2.0.2 -#### module load landsfcutil/2.1.0 -#### set FCMP ifort - -#export execdir=${execdir:-/climate/save/emc.climpara/Xingren/regrid/iceocnpost/exec} -#export executable=${executable:-$execdir/reg2grb2.x} - -#### export execdir=$MOM6REGRID/exec -#### export execdir=${execdir:-/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post/mom6_regrid_025/exec} -#### export executable=${executable:-$execdir/reg2grb2.x} -#### export mask_file=/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post/mom6_regrid_025/mask.0p25x0p25.grb2 -export mask_file=$MOM6REGRID/fix/mask.0p25x0p25.grb2 +MOM6REGRID=${MOM6REGRID:-$HOMEgfs} +export mask_file=$MOM6REGRID/fix/fix_reg2grb2/mask.0p25x0p25.grb2 #export icefile=/climate/save/emc.climpara/Xingren/regrid/out/icer2015040106.01.2015040100_0p5x0p5_CICE.nc #export ocnfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnr2015040106.01.2015040100_0p5x0p5_MOM6.nc #export outfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnh2015040106.01.2015040100.grb2 diff --git a/scripts/run_regrid.sh b/scripts/run_regrid.sh index 38449870c5..11f62af223 100755 --- a/scripts/run_regrid.sh +++ b/scripts/run_regrid.sh @@ -1,13 +1,10 @@ #!/bin/bash -set -euax - -##################################################################### -# User specific parameters +set -x echo "Entered $0" - +MOM6REGRID=${MOM6REGRID:-$HOMEgfs} export EXEC_DIR=$MOM6REGRID/exec -export FIX_DIR=$MOM6REGRID/fix +export USH_DIR=$MOM6REGRID/ush export COMOUT=$COMOUT export IDATE=$IDATE export ENSMEM=$ENSMEM @@ -31,6 +28,7 @@ ls -alrt # executed from DATA dir #$NCL $EXEC_DIR/regrid_MOM6.ncl > regrid_MOM6.log 2>&1 #$NCL $EXEC_DIR/regrid_CICE.ncl > regrid_CICE.log 2>&1 -$NCL $FIX_DIR/icepost.ncl > regrid_CICE.log 2>&1 -$NCL $FIX_DIR/ocnpost.ncl > regrid_MOM6.log 2>&1 + +$NCL $USH_DIR/icepost.ncl > regrid_CICE.log 2>&1 +$NCL $USH_DIR/ocnpost.ncl > regrid_MOM6.log 2>&1 ##################################################################### diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 1c4a41122c..944d8b72fe 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -1,5 +1,5 @@ #!/bin/sh -set -eu +set -x #------------------------------------ # USER DEFINED STUFF: # diff --git a/sorc/build_all_reg2grb2.sh b/sorc/build_all_reg2grb2.sh deleted file mode 100755 index 8c975ed436..0000000000 --- a/sorc/build_all_reg2grb2.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -set -xeu -#------------------------------------ -# USER DEFINED STUFF: -# -# USE_PREINST_LIBS: set to "true" to use preinstalled libraries. -# Anything other than "true" will use libraries locally. -#------------------------------------ - -if [ $# -eq 1 ]; then -model=$1 -fi -model=${model:-"uncoupled"} - -export USE_PREINST_LIBS="true" - -#------------------------------------ -# END USER DEFINED STUFF -#------------------------------------ - -build_dir=`pwd` -logs_dir=$build_dir/logs -if [ ! -d $logs_dir ]; then - echo "Creating logs folder" - mkdir $logs_dir -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - echo "Creating ../exec folder" - mkdir ../exec -fi - -#------------------------------------ -# GET MACHINE -#------------------------------------ -target="" -source ./machine-setup.sh > /dev/null 2>&1 - -#------------------------------------ -# INCLUDE PARTIAL BUILD -#------------------------------------ - -. ./partial_build.sh - -#------------------------------------ -# build reg2grb2 -#------------------------------------ -if [ $target = hera -o $target = orion ]; then - $Build_reg2grb2 && { - echo " .... Building reg2grb2 .... " - ./build_reg2grb2.sh > $logs_dir/build_reg2grb2.log 2>&1 -} -fi - -echo;echo " .... Build system finished .... " - -exit 0 diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index a2177b5a55..5ab9574ed2 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ex +set -x #--make symbolic links for EMC installation and hardcopies for NCO delivery . ./machine-setup.sh @@ -52,15 +52,19 @@ elif [ $target == "gaea" ]; then elif [ $target == "jet" ]; then FIX_DIR="/lfs3/projects/hfv3gfs/glopara/git/fv3gfs/fix" elif [ $target == "hera" ]; then - FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix" + FIX_DIR="/scratch2/NCEPDEV/climate/climpara/S2S/FIX/fix_UFSp4" +#### FIX_DIR="/scratch1/NCEPDEV/global/Lin.Gan/git/reg2grb2_fix/test/fix_UFSp4" elif [ $target == "orion" ]; then - FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix/fix_prep_benchmark3" +#### FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix/fix_prep_benchmark3" + FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix_UFSp4" else echo 'CRITICAL: links to fix files not set' [[ $machine != orion ]] && exit 1 fi +if [ ! -d ${pwd}/../fix ]; then mkdir ${pwd}/../fix; fi cd ${pwd}/../fix ||exit 8 + for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 fix_verif ; do [[ -d $dir ]] && rm -rf $dir done @@ -80,20 +84,6 @@ if [ ! -z $FIX_DIR ]; then $LINK $FIX_DIR/* . fi -if [ ! -r $FIX_DIR ]; then - echo "CRITICAL: you do not of read permissions to the location of the fix file $FIX_DIR" - exit -1 -fi - -if [ ! -z $FIX_DIR ]; then - if [ ! -d ${pwd}/../fix ]; then mkdir ${pwd}/../fix; fi - cd ${pwd}/../fix ||exit 8 - for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 ; do - [[ -d $dir ]] && rm -rf $dir - done - $LINK $FIX_DIR/* . -fi - #--------------------------------------- #--add files from external repositories #--------------------------------------- diff --git a/ush/icepost.ncl b/ush/icepost.ncl new file mode 100644 index 0000000000..5bf07b290e --- /dev/null +++ b/ush/icepost.ncl @@ -0,0 +1,382 @@ +;------------------------------------------------------------------ +; Denise.Worthen@noaa.gov (Feb 2019) +; +; This script will remap CICE5 output on the tripole grid to +; a set of rectilinear grids using pre-computed ESMF weights to remap +; the listed fields to the destination grid and write the results +; to a new netCDF file +; +; See ocnpost.ncl for a complete description +; +; Bin.Li@noaa.gov (May 2019) +; This script is revised to be used in the coupled workflow. +; Revised parts are marked by + + load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl" + +;---------------------------------------------------------------------- +begin + +;************************************************ +; specify parameters +;************************************************ +; + + output_masks = False + ; destination grid sizes and name + dsttype = (/"rect."/) + ;dstgrds = (/"1p0", "0p5", "0p25"/) +; + + ; specify a location to use + ; nemsrc = "/scratch4/NCEPDEV/ocean/save/Denise.Worthen/NEMS_INPUT0.1/ocnicepost/" + ; interpolation methods + methods = (/"bilinear" ,"conserve"/) + ; ocean model output location + ;dirsrc = "/scratch3/NCEPDEV/stmp2/Denise.Worthen/BM1_ice/" + + + ; variables to be regridded with the native tripole stagger location + + varlist = (/ (/ "hi_h", "Ct", "bilinear"/) \ + ,(/ "hs_h", "Ct", "bilinear"/) \ + ,(/ "Tsfc_h", "Ct", "bilinear"/) \ + ,(/ "aice_h", "Ct", "bilinear"/) \ + ,(/ "sst_h", "Ct", "bilinear"/) \ + /) + dims = dimsizes(varlist) + nvars = dims(0) + delete(dims) + ;print(varlist) + + ; vectors to be regridded with the native tripole stagger location + ; and dimensionality + ; note: vectors are always unstaggered using bilinear weights, but can + ; be remapped using conservative + nvpairs = 1 + veclist = new( (/nvpairs,3,2/),"string") + veclist = (/ (/ (/"uvel_h", "vvel_h"/), (/"Bu", "Bu"/), (/"bilinear", "bilinear"/) /) \ + /) + ;print(veclist) + + begTime = get_cpu_time() +;---------------------------------------------------------------------- +; make a list of the directories and files from the run +;---------------------------------------------------------------------- +; idate = "20120101" +; icefilelist = systemfunc("ls "+dirsrc+"gfs."+idate+"/00/"+"ice*.nc") +; icef = addfiles(icefilelist,"r") +; nfiles = dimsizes(icefilelist) +; + + ; get the rotation angle + angleT = icef[0]->ANGLET + + ; get a 2 dimensional fields for creating the interpolation mask + ; the mask2d contain 1's on land and 0's at valid points. + mask2d = where(ismissing(icef[0]->sst_h), 1.0, 0.0) + ;printVarSummary(mask2d) + + ; create conformed rotation arrays to make vector rotations cleaner + angleT2d=conform_dims(dimsizes(mask2d),angleT,(/1,2/)) + +;---------------------------------------------------------------------- +; loop over the output resolutions +;---------------------------------------------------------------------- + + jj = 1 + ii = 0 + + do jj = 0,dimsizes(dstgrds)-1 + ;outres = "_"+dstgrds(jj)+"x"+dstgrds(jj) + outres = dstgrds(jj)+"x"+dstgrds(jj) + outgrid = dstgrds(jj) + + ; regrid a field to obtain the output xy dimensions + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + tt = ESMF_regrid_with_weights(angleT,wgtsfile,False) + tt!0 = "lat" + tt!1 = "lon" + lat = tt&lat + lon = tt&lon + dims = dimsizes(tt) + nlat = dims(0) + nlon = dims(1) + print("fields will be remapped to destination grid size "\ + +nlon+" "+nlat) + + delete(tt) + delete(dims) + + ; regrid the masks to obtain the interpolation masks. + ; the mask2d contain 1's on land and 0's at valid points. + ; when remapped, any mask value > 0 identifies land values that + ; have crept into the field. remapped model fields are then + ; masked with this interpolation mask + + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + rgmask2d = ESMF_regrid_with_weights(mask2d, wgtsfile,False) + + if(output_masks)then + testfile = "masks_"+dstgrds(jj)+".nc" + system("/bin/rm -f "+testfile) + ; create + testcdf = addfile(testfile,"c") + testcdf->rgmask2d = rgmask2d + ; close + delete(testcdf) + end if + + ; create the interpolation mask + rgmask2d = where(rgmask2d .gt. 0.0, rgmask2d@_FillValue, 1.0) + +;---------------------------------------------------------------------- +; loop over each file in the icefilelist +;---------------------------------------------------------------------- +; + ; retrieve the time stamp + time = icef[0]->time + delete(time@bounds) + +;---------------------------------------------------------------------- +; set up the output netcdf file +;---------------------------------------------------------------------- +; system("/bin/rm -f " + outfile) ; remove if exists +; outcdf = addfile (outfile, "c") ; open output file +; +; + + ; explicitly declare file definition mode. Improve efficiency. + setfileoption(outcdf,"DefineMode",True) + + ; create global attributes of the file + fAtt = True ; assign file attributes + fAtt@creation_date = systemfunc ("date") + fAtt@source_file = infile + fileattdef( outcdf, fAtt ) ; copy file attributes + + ; predefine the coordinate variables and their dimensionality + dimNames = (/"time", "lat", "lon"/) + dimSizes = (/ -1 , nlat, nlon/) + dimUnlim = (/ True , False, False/) + filedimdef(outcdf,dimNames,dimSizes,dimUnlim) + + ; predefine the the dimensionality of the variables to be written out + filevardef(outcdf, "time", typeof(time), getvardims(time)) + filevardef(outcdf, "lat", typeof(lat), getvardims(lat)) + filevardef(outcdf, "lon", typeof(lon), getvardims(lon)) + + ; Copy attributes associated with each variable to the file + filevarattdef(outcdf, "time", time) + filevarattdef(outcdf, "lat", lat) + filevarattdef(outcdf, "lon", lon) + + ; predefine variables + do nv = 0,nvars-1 + varname = varlist(nv,0) + odims = (/"time", "lat", "lon"/) + ;print("creating variable "+varname+" in file") + filevardef(outcdf, varname, "float", odims) + delete(odims) + end do + + do nv = 0,nvpairs-1 + do nn = 0,1 + vecname = veclist(nv,0,nn) + odims = (/"time", "lat", "lon"/) + ;print("creating variable "+vecname+" in file") + filevardef(outcdf, vecname, "float", odims) + delete(odims) + end do + end do + + ; explicitly exit file definition mode. + setfileoption(outcdf,"DefineMode",False) + + lat=lat(::-1) + ; write the dimensions to the file + outcdf->time = (/time/) + outcdf->lat = (/lat/) + outcdf->lon = (/lon/) + +;---------------------------------------------------------------------- +; loop over nvars variables +;---------------------------------------------------------------------- + + ;nv = 1 + do nv = 0,nvars-1 + varname = varlist(nv,0) + vargrid = varlist(nv,1) + varmeth = varlist(nv,2) + + ;print(nv+" "+varname+" "+vargrid+" "+varmeth) + icevar = icef[ii]->$varname$ + ndims = dimsizes(dimsizes(icevar)) + ;print(ndims+" "+dimsizes(icevar)) + + if(vargrid .ne. "Ct")then + ; print error if the variable is not on the Ct grid + print("Variable is not on Ct grid") + exit + end if + + ; regrid to dsttype+dstgrd with method + ;print("remapping "+varname+" to grid "+dsttype+dstgrds(jj)) + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" + + rgtt = ESMF_regrid_with_weights(icevar,wgtsfile,False) + rgtt = where(ismissing(rgmask2d),icevar@_FillValue,rgtt) + rgtt=rgtt(:,::-1,:) + + ; enter file definition mode to add variable attributes + setfileoption(outcdf,"DefineMode",True) + filevarattdef(outcdf, varname, rgtt) + setfileoption(outcdf,"DefineMode",False) + + + outcdf->$varname$ = (/rgtt/) + + delete(icevar) + delete(rgtt) + + ; nv, loop over number of variables + end do + +;---------------------------------------------------------------------- +; +;---------------------------------------------------------------------- + + ;nv = 0 + do nv = 0,nvpairs-1 + vecnames = veclist(nv,0,:) + vecgrids = veclist(nv,1,:) + vecmeth = veclist(nv,2,:) + ;print(nv+" "+vecnames+" "+vecgrids+" "+vecmeth) + + ; create a vector pair list + vecpairs = NewList("fifo") + n = 0 + uvel = icef[ii]->$vecnames(n)$ + vecfld = where(ismissing(uvel),0.0,uvel) + copy_VarAtts(uvel,vecfld) + ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") + wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + ut = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + delete(ut@remap) + + n = 1 + vvel = icef[ii]->$vecnames(n)$ + vecfld = where(ismissing(vvel),0.0,vvel) + copy_VarAtts(vvel,vecfld) + ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") + wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + vt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + delete(vt@remap) + + ListAppend(vecpairs,ut) + ListAppend(vecpairs,vt) + ;print(vecpairs) + + ; rotate + ; first copy Metadata + urot = vecpairs[0] + vrot = vecpairs[1] + urot = cos(angleT2d)*ut - sin(angleT2d)*vt + vrot = sin(angleT2d)*ut + cos(angleT2d)*vt + + ; change attribute to indicate these are now rotated velocities + urot@long_name=str_sub_str(urot@long_name,"(x)","zonal") + vrot@long_name=str_sub_str(vrot@long_name,"(y)","meridional") + ; copy back + vecpairs[0] = urot + vecpairs[1] = vrot + delete([/urot, vrot/]) + + ; remap + do n = 0,1 + vecfld = vecpairs[n] + ; regrid to dsttype+dstgrd with method + ;print("remapping "+vecnames(n)+" to grid "+dsttype+dstgrds(jj)) + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" + + rgtt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + rgtt = where(ismissing(rgmask2d),vecfld@_FillValue,rgtt) + rgtt=rgtt(:,::-1,:) + + ; enter file definition mode to add variable attributes + setfileoption(outcdf,"DefineMode",True) + filevarattdef(outcdf, vecnames(n), rgtt) + setfileoption(outcdf,"DefineMode",False) + + outcdf->$vecnames(n)$ = (/rgtt/) + delete(rgtt) + end do + delete([/uvel,vvel,ut,vt,vecfld,vecpairs/]) + delete([/vecnames,vecgrids,vecmeth/]) + ; nv, loop over number of vector pairs + end do + +;---------------------------------------------------------------------- +; close the outcdf and continue through filelist +;---------------------------------------------------------------------- + + delete(outcdf) + + ; ii, loop over files + ;end do + ;jj, loop over destination grids + delete([/lat,lon,nlon,nlat/]) + delete([/rgmask2d/]) + end do + print("One complete ice file in " + (get_cpu_time() - begTime) + " seconds") +exit +end diff --git a/ush/ocnpost.ncl b/ush/ocnpost.ncl new file mode 100644 index 0000000000..5084a849bd --- /dev/null +++ b/ush/ocnpost.ncl @@ -0,0 +1,587 @@ +;------------------------------------------------------------------ +; Denise.Worthen@noaa.gov (Feb 2019) +; +; This script will remap MOM6 ocean output on the tripole grid to +; a set of rectilinear grids using pre-computed ESMF weights to remap +; the listed fields to the destination grid and write the results +; to a new netCDF file +; +; Prior to running this script, files containing the conservative +; and bilinear regridding weights must be generated. These weights +; are created using the generate_iceocnpost_weights.ncl script. +; +; Note: the descriptive text below assumes fortran type indexing +; where the variables are indexed as (i,j) and indices start at 1 +; NCL indices are (j,i) and start at 0 +; +; The post involves these steps +; +; a) unstaggering velocity points +; MOM6 is on an Arakawa C grid. MOM6 refers to these +; locations as "Ct" for the centers and "Cu", "Cv" +; "Bu" for the left-right, north-south and corner +; points, respectively. +; +; The indexing scheme in MOM6 is as follows: +; +; Cv@i,j +; ----X------X Bu@i,j +; | +; | +; Ct@i,j | +; X X Cu@i,j +; | +; | +; | +; +; CICE5 is on an Arakawa B grid. CICE5 refers to these +; locations as TLAT,TLON for the centers and ULAT,ULON +; for the corners +; +; In UFS, the CICE5 grid has been created using the MOM6 +; supergrid file. Therefore, all grid points are consistent +; between the two models. +; +; In the following, MOM6's nomenclature will be followed, +; so that CICE5's U-grid will be referred to as "Bu". +; +; b) rotation of tripole vectors to East-West +; MOM6 and CICE6 both output velocties on their native +; velocity points. For MOM6, that is u-velocities on the +; Cu grid and v-velocites on the Cv grid. For CICE5, it is +; both u and v-velocities on the Bu grid. +; +; The rotation angle for both models are defined at center +; grid points; therefore the velocities need to be first +; unstaggered before rotation. MOM6 and CICE5 also define +; opposite directions for the rotations. Finally, while the +; grid points are identical between the two models, CICE5 +; calculates the rotation angle at center grid points by +; averaging the four surrounding B grid points. MOM6 derives +; the rotation angle at the center directly from the latitude +; and longitude of the center grid points. The angles are therefor +; not identical between the two grids. +; +; c) conservative regridding of some fields +; Fields such as ice concentration or fluxes which inherently +; area area-weighted require conservative regridding. Most other +; variables are state variables and can be regridded using +; bilinear weighting. +; +; An efficient way to accomplish the unstaggering of velocities +; is to use the bilinear interpolation weights between grid +; points of the Arakawa C grid and the center grid points (for example +; Cu->Ct). These weights are generated by the weight generation script +; +; Remapping from the tripole to rectilinear uses either the bilinear +; or conservative weights from the weight generation script. Bilinear weights +; generated for the first vertical level can be used on other levels +; (where the masking changes) by utilizing the correct masking procedure. +; Set output_masks to true to examine the interpolation masks. +; +; Intermediate file output can easily be generated for debugging by +; follwing the example in the output_masks logical +; +; Bin.Li@noaa.gov (May 2019) +; The scripts is revised for use in the coupled workflow. +; + load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl" + +;---------------------------------------------------------------------- +begin +; + + ; warnings (generated by int2p_n_Wrap) can be supressed by + ; the following (comment out to get the warnings) + err = NhlGetErrorObjectId() + setvalues err +; "errLevel" : "Fatal" ; only report Fatal errors + "errLevel" : "Verbose" + end setvalues + + output_masks = False + + ; specify a location to use + ; nemsrc = "/scratch4/NCEPDEV/ocean/save/Denise.Worthen/NEMS_INPUT0.1/ocnicepost/" + ; interpolation methods + methods = (/"bilinear" ,"conserve"/) + ; ocean model output location + ;dirsrc = "/scratch3/NCEPDEV/stmp2/Denise.Worthen/BM1_ocn/" + + ; destination grid sizes and name + dsttype = (/"rect."/) + ;dstgrds = (/"1p0", "0p5", "0p25"/) + ;dstgrds = (/"0p5"/) + dstgrds = (/"0p25"/) + + ; variables to be regridded with the native tripole stagger location + ; and dimensionality + ; first BM contained only field "mld", which was actually ePBL + ; the remaining BMs contain ePBL, MLD_003 and MLD_0125 + ; the following NCO command will be issued at the end + ; to rename the variable mld to ePBL if the variable mld is found + ; ncocmd = "ncrename -O -v mld,ePBL " + ncocmd = "ncrename -O -v MLD_003,mld" + + varlist = (/ (/ "SSH", "Ct", "bilinear", "2"/) \ + ,(/ "SST", "Ct", "bilinear", "2"/) \ + ,(/ "SSS", "Ct", "bilinear", "2"/) \ + ,(/ "speed", "Ct", "bilinear", "2"/) \ + ,(/ "temp", "Ct", "bilinear", "3"/) \ + ,(/ "so", "Ct", "bilinear", "3"/) \ + ,(/ "latent", "Ct", "conserve", "2"/) \ + ,(/ "sensible", "Ct", "conserve", "2"/) \ + ,(/ "SW", "Ct", "conserve", "2"/) \ + ,(/ "LW", "Ct", "conserve", "2"/) \ + ,(/ "evap", "Ct", "conserve", "2"/) \ + ,(/ "lprec", "Ct", "conserve", "2"/) \ + ,(/ "fprec", "Ct", "conserve", "2"/) \ + ,(/"LwLatSens", "Ct", "conserve", "2"/) \ + ,(/ "Heat_PmE", "Ct", "conserve", "2"/) \ +; ,(/ "mld", "Ct", "bilinear", "2"/) \ + ,(/ "ePBL", "Ct", "bilinear", "2"/) \ + ,(/ "MLD_003", "Ct", "bilinear", "2"/) \ + ,(/ "MLD_0125", "Ct", "bilinear", "2"/) \ + /) + dims = dimsizes(varlist) + nvars = dims(0) + delete(dims) + ;print(varlist) + + ; vectors to be regridded with the native tripole stagger location + ; and dimensionality + ; note: vectors are always unstaggered using bilinear weights, but can + ; be remapped using conservative + nvpairs = 3 + veclist = new( (/nvpairs,4,2/),"string") + veclist = (/ (/ (/ "SSU", "SSV"/), (/"Cu", "Cv"/), (/"bilinear", "bilinear"/), (/"2", "2"/) /) \ + , (/ (/ "uo", "vo"/), (/"Cu", "Cv"/), (/"bilinear", "bilinear"/), (/"3", "3"/) /) \ + , (/ (/ "taux", "tauy"/), (/"Cu", "Cv"/), (/"conserve", "conserve"/), (/"2", "2"/) /) \ + /) + ;print(veclist) + + begTime = get_cpu_time() +;---------------------------------------------------------------------- +; make a list of the directories and files from the run +;---------------------------------------------------------------------- + +; idate = "20120101" + +; ocnfilelist = systemfunc("ls "+dirsrc+"gfs."+idate+"/00/"+"ocn*.nc") +; ocnf = addfiles(ocnfilelist,"r") +; nfiles = dimsizes(ocnfilelist) +; + + ; get the rotation angles and vertical grid from the first file + ; two different name were used for the angles, either sinrot,cosrot + ; or sin_rot,cos_rot + if(isfilevar(ocnf[0],"sin_rot"))then + sinrot = ocnf[0]->sin_rot + else + sinrot = ocnf[0]->sinrot + end if + if(isfilevar(ocnf[0],"cos_rot"))then + cosrot = ocnf[0]->cos_rot + else + cosrot = ocnf[0]->cosrot + end if + z_l = ocnf[0]->z_l + z_i = ocnf[0]->z_i + nlevs = dimsizes(z_l) + + ; get a 2 and 3 dimensional fields for creating the interpolation masks + ; the mask2d,mask3d contain 1's on land and 0's at valid points. + mask2d = where(ismissing(ocnf[0]->SST), 1.0, 0.0) + mask3d = where(ismissing(ocnf[0]->temp), 1.0, 0.0) + ;printVarSummary(mask2d) + ;printVarSummary(mask3d) + + ; create conformed rotation arrays to make vector rotations cleaner + sinrot2d=conform_dims(dimsizes(mask2d),sinrot,(/1,2/)) + cosrot2d=conform_dims(dimsizes(mask2d),cosrot,(/1,2/)) + + sinrot3d=conform_dims(dimsizes(mask3d),sinrot,(/2,3/)) + cosrot3d=conform_dims(dimsizes(mask3d),cosrot,(/2,3/)) + + ; check for variables in file. this is only required because + ; of the missing/misnamed MLD variables in the first BM + ; only the varlist is checked, since it is assumed there are + ; no other variables missing after the first benchmark + valid = new((/nvars/),"logical") + valid = False + do nv = 0,nvars-1 + varname = varlist(nv,0) + if(isfilevar(ocnf[0],varname))then + valid(nv) = True + end if + print(varlist(nv,0)+" "+valid(nv)) + end do + +;---------------------------------------------------------------------- +; loop over the output resolutions +;---------------------------------------------------------------------- + + jj = 1 + ii = 0 + + do jj = 0,dimsizes(dstgrds)-1 + ;outres = "_"+dstgrds(jj)+"x"+dstgrds(jj) + outres = dstgrds(jj)+"x"+dstgrds(jj) + outgrid = dstgrds(jj) + + ; regrid a field to obtain the output xy dimensions + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + tt = ESMF_regrid_with_weights(sinrot,wgtsfile,False) + tt!0 = "lat" + tt!1 = "lon" + lat = tt&lat + lon = tt&lon + dims = dimsizes(tt) + nlat = dims(0) + nlon = dims(1) + + print("fields will be remapped to destination grid size "\ + +nlon+" "+nlat) + + delete(tt) + delete(dims) + + ; regrid the masks to obtain the interpolation masks. + ; the mask2d,mask3d contain 1's on land and 0's at valid points. + ; when remapped, any mask value > 0 identifies land values that + ; have crept into the field. remapped model fields are then + ; masked with this interpolation mask + + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + rgmask2d = ESMF_regrid_with_weights(mask2d, wgtsfile,False) + rgmask3d = ESMF_regrid_with_weights(mask3d, wgtsfile,False) + + if(output_masks)then + testfile = "masks_"+dstgrds(jj)+".nc" + system("/bin/rm -f "+testfile) + ; create + testcdf = addfile(testfile,"c") + testcdf->rgmask2d = rgmask2d + testcdf->rgmask3d = rgmask3d + ; close + delete(testcdf) + end if + + ; create the interpolation mask + rgmask2d = where(rgmask2d .gt. 0.0, rgmask2d@_FillValue, 1.0) + rgmask3d = where(rgmask3d .gt. 0.0, rgmask3d@_FillValue, 1.0) + + ; conformed depth array + depth = conform_dims(dimsizes(mask3d), z_l, (/1/)) + ;print(dimsizes(depth)) + +;---------------------------------------------------------------------- +; loop over each file in the ocnfilelist +;---------------------------------------------------------------------- +; + + ; retrieve the time stamp + time = ocnf[0]->time + delete(time@bounds) + +;---------------------------------------------------------------------- +; set up the output netcdf file +;---------------------------------------------------------------------- +; system("/bin/rm -f " + outfile) ; remove if exists +; outcdf = addfile (outfile, "c") ; open output file +; specify output file information and open file for output + FILENAME_REGRID = DATA_TMP+"/ocnr"+VDATE+"."+ENSMEM+"."+IDATE+"_"+outres+"_MOM6.nc" + if (isfilepresent(FILENAME_REGRID)) then + system("rm -f "+FILENAME_REGRID) + end if + outcdf = addfile(FILENAME_REGRID,"c") + outfile=FILENAME_REGRID + + ; explicitly declare file definition mode. Improve efficiency. + setfileoption(outcdf,"DefineMode",True) + + ; create global attributes of the file + fAtt = True ; assign file attributes + fAtt@creation_date = systemfunc ("date") + fAtt@source_file = infile + fileattdef( outcdf, fAtt ) ; copy file attributes + + ; predefine the coordinate variables and their dimensionality + ; dimNames = (/"time", "z_l", "z_i", "z_T", "lat", "lon"/) + dimNames = (/"time", "z_l", "z_i", "lat", "lon"/) + ;dimSizes = (/ -1 , nlevs, nlevs+1, nTd, nlat, nlon/) + dimSizes = (/ -1 , nlevs, nlevs+1, nlat, nlon/) + ;dimUnlim = (/ True , False, False, False, False, False/) + dimUnlim = (/ True , False, False, False, False/) + filedimdef(outcdf,dimNames,dimSizes,dimUnlim) + + ; predefine the the dimensionality of the variables to be written out + filevardef(outcdf, "time", typeof(time), getvardims(time)) + filevardef(outcdf, "z_l", typeof(z_l), getvardims(z_l)) + filevardef(outcdf, "z_i", typeof(z_i), getvardims(z_i)) + ;filevardef(outcdf, "z_T", typeof(z_T), getvardims(z_T)) + filevardef(outcdf, "lat", typeof(lat), getvardims(lat)) + filevardef(outcdf, "lon", typeof(lon), getvardims(lon)) + + ; Copy attributes associated with each variable to the file + filevarattdef(outcdf, "time", time) + filevarattdef(outcdf, "z_l", z_l) + filevarattdef(outcdf, "z_i", z_i) + ;filevarattdef(outcdf, "z_T", z_T) + filevarattdef(outcdf, "lat", lat) + filevarattdef(outcdf, "lon", lon) + + ; predefine variables + do nv = 0,nvars-1 + varname = varlist(nv,0) + vardims = varlist(nv,3) + if(valid(nv))then + if(vardims .eq. "2")then + odims = (/"time", "lat", "lon"/) + else + odims = (/"time", "z_l", "lat", "lon"/) + end if + ;print("creating variable "+varname+" in file") + filevardef(outcdf, varname, "float", odims) + delete(odims) + end if + end do + + do nv = 0,nvpairs-1 + do nn = 0,1 + vecname = veclist(nv,0,nn) + vecdims = veclist(nv,3,nn) + if(vecdims .eq. "2")then + odims = (/"time", "lat", "lon"/) + else + odims = (/"time", "z_l", "lat", "lon"/) + end if + ;print("creating variable "+vecname+" in file") + filevardef(outcdf, vecname, "float", odims) + delete(odims) + delete(vecdims) + end do + end do + + ; explicitly exit file definition mode. + setfileoption(outcdf,"DefineMode",False) + + ; write the dimensions to the file + outcdf->time = (/time/) + outcdf->z_l = (/z_l/) + outcdf->z_i = (/z_i/) +; outcdf->z_T = (/z_T/) +; + outcdf->lat = (/lat/) + outcdf->lon = (/lon/) + +;---------------------------------------------------------------------- +; loop over nvars variables +;---------------------------------------------------------------------- + + do nv = 0,nvars-1 + varname = varlist(nv,0) + vargrid = varlist(nv,1) + varmeth = varlist(nv,2) + vardims = varlist(nv,3) + + if(valid(nv))then + ;print(nv+" "+varname+" "+vargrid+" "+varmeth) + ocnvar = ocnf[ii]->$varname$ + ndims = dimsizes(dimsizes(ocnvar)) + ;print(ndims+" "+dimsizes(ocnvar)) + + if(vargrid .ne. "Ct")then + ; print error if the variable is not on the Ct grid + print("Variable is not on Ct grid") + exit + end if + + ; regrid to dsttype+dstgrd with method + ;print("remapping "+varname+" to grid "+dsttype+dstgrds(jj)) + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" + + rgtt = ESMF_regrid_with_weights(ocnvar,wgtsfile,False) + if(vardims .eq. "2")then + rgtt = where(ismissing(rgmask2d),ocnvar@_FillValue,rgtt) + rgtt=rgtt(:,::-1,:) + else + rgtt = where(ismissing(rgmask3d),ocnvar@_FillValue,rgtt) + rgtt=rgtt(:,:,::-1,:) + end if + + ; enter file definition mode to add variable attributes + setfileoption(outcdf,"DefineMode",True) + filevarattdef(outcdf, varname, rgtt) + setfileoption(outcdf,"DefineMode",False) + + outcdf->$varname$ = (/rgtt/) + + delete(ocnvar) + delete(rgtt) + + ; variable exists + end if + ; nv, loop over number of variables + end do + +;---------------------------------------------------------------------- +; +;---------------------------------------------------------------------- + + ;nv = 2 + do nv = 0,nvpairs-1 + vecnames = veclist(nv,0,:) + vecgrids = veclist(nv,1,:) + vecmeth = veclist(nv,2,:) + vecdims = veclist(nv,3,:) + ;print(nv+" "+vecnames+" "+vecgrids+" "+vecmeth) + + ; create a vector pair list + vecpairs = NewList("fifo") + n = 0 + uvel = ocnf[ii]->$vecnames(n)$ + vecfld = where(ismissing(uvel),0.0,uvel) + copy_VarAtts(uvel,vecfld) + ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") + wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + ut = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + delete(ut@remap) + + n = 1 + vvel = ocnf[ii]->$vecnames(n)$ + vecfld = where(ismissing(vvel),0.0,vvel) + copy_VarAtts(vvel,vecfld) + ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") + wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + vt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + delete(vt@remap) + + ListAppend(vecpairs,ut) + ListAppend(vecpairs,vt) + ;print(vecpairs) + + ; rotate + ; first copy Metadata + urot = vecpairs[0] + vrot = vecpairs[1] + if(vecdims(0) .eq. "2")then + urot = ut*cosrot2d + vt*sinrot2d + vrot = vt*cosrot2d - ut*sinrot2d + else + urot = ut*cosrot3d + vt*sinrot3d + vrot = vt*cosrot3d - ut*sinrot3d + end if + ; change attribute to indicate these are now rotated velocities + urot@long_name=str_sub_str(urot@long_name,"X","Zonal") + vrot@long_name=str_sub_str(vrot@long_name,"Y","Meridional") + ; copy back + vecpairs[0] = urot + vecpairs[1] = vrot + delete([/urot, vrot/]) + + ; remap + do n = 0,1 + vecfld = vecpairs[n] + ; regrid to dsttype+dstgrd with method + ;print("remapping "+vecnames(n)+" to grid "+dsttype+dstgrds(jj)) + wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" + + rgtt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) + if(vecdims(n) .eq. "2")then + rgtt = where(ismissing(rgmask2d),vecfld@_FillValue,rgtt) + rgtt=rgtt(:,::-1,:) + else + rgtt = where(ismissing(rgmask3d),vecfld@_FillValue,rgtt) + rgtt=rgtt(:,:,::-1,:) + end if + + ; enter file definition mode to add variable attributes + setfileoption(outcdf,"DefineMode",True) + filevarattdef(outcdf, vecnames(n), rgtt) + setfileoption(outcdf,"DefineMode",False) + + outcdf->$vecnames(n)$ = (/rgtt/) + delete(rgtt) + end do + delete([/uvel,vvel,ut,vt,vecfld,vecpairs/]) + delete([/vecnames,vecgrids,vecmeth,vecdims/]) + ; nv, loop over number of vector pairs + end do + +;---------------------------------------------------------------------- +; close the outcdf and continue through filelist +;---------------------------------------------------------------------- + + delete(outcdf) + ; rename mld to ePBL if required + do nv = 0,nvars-1 + varname = varlist(nv,0) + ; if(varname .eq. "mld" .and. valid(nv))then + if(varname .eq. "MLD_003" .and. valid(nv))then + print("Renaming MLD_003 to mld") + ;print(ncocmd+" "+outfile) + system(ncocmd+" "+outfile) + end if + end do + + ; ii, loop over files +; + ;jj, loop over destination grids + delete([/lat,lon,nlon,nlat/]) + delete([/rgmask2d,rgmask3d/]) + end do + print("One complete ocn file in " + (get_cpu_time() - begTime) + " seconds") +exit +end From d2783fb350d727a5699e8a7277cc7559463bd8ff Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 9 Jun 2020 08:34:31 -0500 Subject: [PATCH 66/91] add ocn-ice build to readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cb7589882b..0185c0ae7e 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,9 @@ sh checkout.sh coupled # Check out the couple ``` ## Compile code used in ufs-s2s-model and EMC_post and link fixed files and executable programs: ``` -sh build_ncep_post.sh #This command will build ncep_post. +sh build_ncep_post.sh #This command will build ncep_post sh build_fv3_coupled.sh #This command will build ufs-s2s-model +sh build_reg2grb2.sh #This command will build exes for ocean-ice post To link fixed files and executable programs for the coupled application: On Hera: From aa33b21490ab6a9f82649af991dd9a877b2a2bec Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 9 Jun 2020 13:54:50 -0500 Subject: [PATCH 67/91] adding updates to wave scripts from gfsv16b branch by @ajhenrique --- .gitignore | 2 + scripts/exwave_init.sh | 14 ++- scripts/exwave_post_sbs.sh | 197 +++++++++++++++---------------- scripts/exwave_prep.sh | 224 +++++++++++++++++++----------------- ush/wave_grib2_sbs.sh | 18 ++- ush/wave_grid_interp.sh | 8 +- ush/wave_grid_interp_sbs.sh | 8 +- ush/wave_outp_spec.sh | 9 +- ush/wave_prnc_cur.sh | 29 ++--- ush/wave_prnc_ice.sh | 4 +- ush/wave_tar.sh | 9 +- 11 files changed, 282 insertions(+), 240 deletions(-) diff --git a/.gitignore b/.gitignore index 7bf237f397..b56d24eb21 100644 --- a/.gitignore +++ b/.gitignore @@ -165,3 +165,5 @@ util/sub_wcoss_d workflow/user.yaml sorc/checkout-gldas.fd.log sorc/gldas.fd/ +sorc/reg2grb2.fd/*.o +sorc/reg2grb2.fd/*.mod diff --git a/scripts/exwave_init.sh b/scripts/exwave_init.sh index 5a5ed2d669..848222d5ed 100755 --- a/scripts/exwave_init.sh +++ b/scripts/exwave_init.sh @@ -125,12 +125,15 @@ echo ' ' echo $msg [[ "$LOUD" = YES ]] && set -x - echo "$COMPONENTwave init config $date $cycle : ww3_grid.inp.$grdID missing." >> $wavelog err=2;export err;${errchk} fi [[ ! -d $COMOUT/rundata ]] && mkdir -m 775 -p $COMOUT/rundata - echo "$USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nmoddef $USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + else + echo "$USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + fi nmoddef=`expr $nmoddef + 1` @@ -163,7 +166,11 @@ if [ "$NTASKS" -gt '1' ] then - ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi exit=$? else ./cmdfile @@ -208,7 +215,6 @@ echo $msg sed "s/^/$grdID.out : /g" $grdID.out [[ "$LOUD" = YES ]] && set -x - echo "$COMPONENTwave prep $date $cycle : mod_def.$grdID missing." >> $wavelog err=3;export err;${errchk} fi done diff --git a/scripts/exwave_post_sbs.sh b/scripts/exwave_post_sbs.sh index 6f1a1dec38..8d637f0b2b 100755 --- a/scripts/exwave_post_sbs.sh +++ b/scripts/exwave_post_sbs.sh @@ -108,12 +108,13 @@ # --------------------------------------------------------------------------- # # 1. Get files that are used by most child scripts - fieldOK='yes' - pointOK='yes' - gribOK='yes' - grintOK='yes' - specOK='yes' - bullOK='yes' + export DOIBP_WAV='NO' + export DOFLD_WAV='YES' + export DOPNT_WAV='YES' + export DOGRB_WAV='YES' + export DOGRI_WAV='YES' + export DOSPC_WAV='YES' + export DOBLL_WAV='YES' exit_code=0 @@ -144,9 +145,7 @@ cp -f $COMIN/rundata/${COMPONENTwave}.mod_def.${grdID} mod_def.$grdID iloop=`expr $iloop + 1` - fi - done for grdID in $waveGRD $wavesbsGRD $wavepostGRD $waveinterpGRD $waveuoutpGRD @@ -160,17 +159,15 @@ echo '*************************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $grdID $date $cycle : mod_def file missing." >> $wavelog postmsg "$jlogfile" "FATAL ERROR : NO MOD_DEF file mod_def.$grdID" - fieldOK='no' + DOFLD_WAV='NO' err=2; export err;${errchk} exit $err - gribOK='no' + DOGRB_WAV='NO' else set +x echo "File mod_def.$grdID found. Syncing to all nodes ..." [[ "$LOUD" = YES ]] && set -x - $FSYNC mod_def.$grdID fi done @@ -183,12 +180,9 @@ cp -f $FIXwave/wave_${NET}.buoys buoy.loc.temp # Reverse grep to exclude IBP points sed -n '/^\$.*/!p' buoy.loc.temp | grep -v IBP > buoy.loc -# Grep to include IBP points - sed -n '/^\$.*/!p' buoy.loc.temp | grep IBP > buoy.ibp - rm -f buoy.loc.temp fi - if [ -s buoy.loc ] && [ -s buoy.ibp ] + if [ -s buoy.loc ] then set +x echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." @@ -201,18 +195,41 @@ echo '************************************* ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$AV_MOD_ID post $date $cycle : buoy location file missing." >> $wavelog postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOCATION FILE" err=3; export err;${errchk} exit $err - pointOK='no' - specOK='no' - bullOK='no' + DOPNT_WAV='NO' + DOSPC_WAV='NO' + DOBLL_WAV='NO' + fi + + if [ "$DOIBP_WAV" = 'YES' ] + then + sed -n '/^\$.*/!p' buoy.loc.temp | grep IBP > buoy.ibp + if [ -s buoy.ibp ]; then + set +x + echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '************************************* ' + echo ' FATAL ERROR : NO BUOY LOCATION FILE ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOCATION FILE" + err=3; export err;${errchk} + exit $err + DOPNT_WAV='NO' + DOSPC_WAV='NO' + DOBLL_WAV='NO' + fi fi # 1.d Input template files - if [ "$grintOK" = 'yes' ] + if [ "$DOGRI_WAV" = 'YES' ] then for intGRD in $waveinterpGRD do @@ -226,7 +243,6 @@ set +x echo " ${intGRD}_interp.inp.tmpl copied. Syncing to all nodes ..." [[ "$LOUD" = YES ]] && set -x - $FSYNC ${intGRD}_interp.inp.tmpl else set +x echo ' ' @@ -235,15 +251,14 @@ echo '*********************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : GRINT template file missing." >> $wavelog postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRINT INPUT FILE" exit_code=1 - grintOK='no' + DOGRI_WAV='NO' fi done fi - if [ "$gribOK" = 'yes' ] + if [ "$DOGRB_WAV" = 'YES' ] then for grbGRD in $waveinterpGRD $wavepostGRD do @@ -257,7 +272,6 @@ set +x echo " ww3_grib2.${grbGRD}.inp.tmpl copied. Syncing to all nodes ..." [[ "$LOUD" = YES ]] && set -x - $FSYNC ww3_grib2.inp.tmpl else set +x echo ' ' @@ -266,10 +280,9 @@ echo '*********************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : GRIB2 template file missing." >> $wavelog postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRIB2 INPUT FILE" exit_code=2 - gribOK='no' + DOGRB_WAV='NO' fi done fi @@ -284,7 +297,6 @@ set +x echo " ww3_outp_spec.inp.tmpl copied. Syncing to all grids ..." [[ "$LOUD" = YES ]] && set -x - $FSYNC ww3_outp_spec.inp.tmpl else set +x echo ' ' @@ -293,11 +305,10 @@ echo '*********************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : ww3_outp_spec.inp.tmpl file missing." >> $wavelog postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR SPEC INPUT FILE" exit_code=3 - specOK='no' - bullOK='no' + DOSPC_WAV='NO' + DOBLL_WAV='NO' fi if [ -f $FIXwave/ww3_outp_bull.inp.tmpl ] @@ -310,7 +321,6 @@ set +x echo " ww3_outp_bull.inp.tmpl copied. Syncing to all nodes ..." [[ "$LOUD" = YES ]] && set -x - $FSYNC ww3_outp_bull.inp.tmpl else set +x echo ' ' @@ -319,15 +329,14 @@ echo '*************************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : bulletin template file missing." >> $wavelog postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR BULLETIN INPUT FILE" exit_code=4 - bullOK='no' + DOBLL_WAV='NO' fi # 1.e Getting buoy information for points - if [ "$specOK" = 'yes' ] || [ "$bullOK" = 'yes' ] + if [ "$DOSPC_WAV" = 'YES' ] || [ "$DOBLL_WAV" = 'YES' ] then ymdh=`$NDATE -${WAVHINDH} $CDATE` tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" @@ -361,7 +370,7 @@ rm -f buoy_tmp.loc buoy_log.ww3 ww3_oup.inp ln -fs ./out_pnt.${waveuoutpGRD} ./out_pnt.ww3 ln -fs ./mod_def.${waveuoutpGRD} ./mod_def.ww3 - $EXECcode/ww3_outp > buoy_lst.loc 2>&1 + $EXECwave/ww3_outp > buoy_lst.loc 2>&1 err=$? if [ "$err" != '0' ] && [ ! -f buoy_log.ww3 ] @@ -376,12 +385,11 @@ echo '******************************************** ' echo ' ' cat buoy_tmp.loc - echo "$WAV_MOD_TAG post $date $cycle : buoy log file failed to be created." >> $wavelog echo $msg [[ "$LOUD" = YES ]] && set -x err=4;export err;${errchk} - specOK='no' - bullOK='no' + DOSPC_WAV='NO' + DOBLL_WAV='NO' exit $err fi @@ -401,7 +409,6 @@ then set +x echo 'Buoy log file created. Syncing to all nodes ...' - $FSYNC buoy_log.dat [[ "$LOUD" = YES ]] && set -x else set +x @@ -411,49 +418,43 @@ echo '**************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : buoy log file missing." >> $wavelog postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" err=5;export err;${errchk} - specOK='no' - bullOK='no' - OspecOK='no' - ObullOK='no' + DOSPC_WAV='NO' + DOBLL_WAV='NO' fi # Create new buoy_log.ww3 including all IBP files - ibspecOK='yes' - cat buoy.ibp | awk '{print $3}' | sed 's/'\''//g' > ibp_tags - grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp - rm -f buoy_log.ibp - mv buoy_log.tmp buoy_log.ibp - - grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc - sed '$d' buoy_tmp1.loc > buoy_tmp2.loc - ibpoints=`awk '{ print $1 }' buoy_tmp2.loc` - Nibp=`wc buoy_tmp2.loc | awk '{ print $1 }'` - rm -f buoy_tmp1.loc buoy_tmp2.loc - - if [ -s buoy_log.ibp ] - then - set +x - echo 'IBP log file created. Syncing to all nodes ...' - $FSYNC buoy_log.ibp - [[ "$LOUD" = YES ]] && set -x - else - set +x - echo ' ' - echo '**************************************** ' - echo '*** ERROR : NO IBP LOG FILE CREATED *** ' - echo '**************************************** ' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $date $cycle : ibp log file missing." >> $wavelog - postmsg "$jlogfile" "FATAL ERROR : NO IBP LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" - err=6;export err;${errchk} - ibspecOK='no' + if [ "$DOIBP_WAV" = 'YES' ]; then + cat buoy.ibp | awk '{print $3}' | sed 's/'\''//g' > ibp_tags + grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp + rm -f buoy_log.ibp + mv buoy_log.tmp buoy_log.ibp + + grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc + sed '$d' buoy_tmp1.loc > buoy_tmp2.loc + ibpoints=`awk '{ print $1 }' buoy_tmp2.loc` + Nibp=`wc buoy_tmp2.loc | awk '{ print $1 }'` + rm -f buoy_tmp1.loc buoy_tmp2.loc + if [ -s buoy_log.ibp ] + then + set +x + echo 'IBP log file created. Syncing to all nodes ...' + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '**************************************** ' + echo '*** ERROR : NO IBP LOG FILE CREATED *** ' + echo '**************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO IBP LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" + err=6;export err;${errchk} + DOIBP_WAV='NO' + fi fi - - fi + fi # 1.f Data summary @@ -463,11 +464,11 @@ echo ' ' echo ' Data summary : ' echo ' ---------------------------------------------' - echo " Sufficient data for GRID interpolation : $grintOK" - echo " Sufficient data for GRIB files : $gribOK" - echo " Sufficient data for spectral files : $specOK ($Nb points)" - echo " Sufficient data for bulletins : $bullOK ($Nb points)" - echo " Sufficient data for Input Boundary Points : $ibspecOK ($Nibp points)" + echo " Sufficient data for GRID interpolation : $DOGRI_WAV" + echo " Sufficient data for GRIB files : $DOGRB_WAV" + echo " Sufficient data for spectral files : $DOSPC_WAV ($Nb points)" + echo " Sufficient data for bulletins : $DOBLL_WAV ($Nb points)" + echo " Sufficient data for Input Boundary Points : $DOIBP_WAV ($Nibp points)" echo ' ' [[ "$LOUD" = YES ]] && set -x @@ -505,10 +506,9 @@ fcmdibp=ibpcmdfile.${FH3} rm -f ${fcmdnow} ${fcmdigrd} ${fcmdpnt} ${fcmdibp} touch ${fcmdnow} ${fcmdigrd} ${fcmdpnt} ${fcmdibp} -# echo "mkdir output_$YMDHMS" >> ${fcmdnow} mkdir output_$YMDHMS -# echo "cd output_$YMDHMS" >> ${fcmdnow} cd output_$YMDHMS + # Create instances of directories for spec and gridded output export SPECDATA=${DATA}/output_$YMDHMS export BULLDATA=${DATA}/output_$YMDHMS @@ -525,14 +525,13 @@ echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $waveuoutpGRD $date $cycle : point output missing." >> $wavelog postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD err=6; export err;${errchk} exit $err fi ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} - if [ "$specOK" = 'yes' ] + if [ "$DOSPC_WAV" = 'YES' ] then export dtspec=3600. for buoy in $buoys @@ -541,7 +540,7 @@ done fi - if [ "$ibspecOK" = 'yes' ] && [ "$DOIBP_WAV" = "YES" ] + if [ "$DOIBP_WAV" = 'YES' ] then export dtspec=3600. for buoy in $ibpoints @@ -550,7 +549,7 @@ done fi - if [ "$bullOK" = 'yes' ] + if [ "$DOBLL_WAV" = 'YES' ] then export dtspec=3600. for buoy in $buoys @@ -572,16 +571,15 @@ echo '*************************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG post $grdID $date $cycle : field output missing." >> $wavelog postmsg "$jlogfile" "NON-FATAL ERROR : NO RAW FIELD OUTPUT FILE out_grd.$grdID" - fieldOK='no' + DOFLD_WAVE='NO' err=7; export err;${errchk} exit $err fi ln -s ${gfile} ./out_grd.${wavGRD} done - if [ "$grintOK" = 'yes' ] + if [ "$DOGRI_WAV" = 'YES' ] then nigrd=1 for grdID in $waveinterpGRD @@ -591,7 +589,7 @@ glo_30mxt) ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ;; esac echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} - if [ "$gribOK" = 'yes' ] + if [ "$DOGRB_WAV" = 'YES' ] then gribFL=\'`echo ${OUTPARS_WAV}`\' case $grdID in @@ -606,7 +604,7 @@ done fi - if [ "$gribOK" = 'yes' ] + if [ "$DOGRB_WAV" = 'YES' ] then for grdID in ${wavepostGRD} # First concatenate grib files for sbs grids do @@ -615,6 +613,8 @@ aoc_9km) GRDNAME='arctic' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; ant_9km) GRDNAME='antarc' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; glo_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + gnh_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + gsh_15m) GRDNAME='gsouth' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; glo_15m) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; ao_20m) GRDNAME='arctic' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; @@ -631,7 +631,7 @@ set +x echo ' ' - echo " Executing the copy command file at : `date`" + echo " Executing the grib2_sbs scripts at : `date`" echo ' ------------------------------------' echo ' ' [[ "$LOUD" = YES ]] && set -x @@ -700,9 +700,12 @@ # 6.b Spectral data files - if [ "$specOK" = 'yes' ] + if [ "$DOIBP_WAV" = 'YES' ] then echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + fi + if [ "$DOSPC_WAV" = 'YES' ] + then echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile @@ -713,7 +716,7 @@ set +x echo ' ' - echo " Executing the copy command file at : `date`" + echo " Executing the wave_tar scripts at : `date`" echo ' ------------------------------------' echo ' ' [[ "$LOUD" = YES ]] && set -x diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 1cd88fd41a..98711b574f 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -105,7 +105,7 @@ RSTOFFSET=$(( ${RSTOFFSET} + ${RSTIOFF_WAV} )) ymdh_rst_ini=`$NDATE ${RSTOFFSET} $YMDH` RST2OFFSET=$(( DT_2_RST_WAV / 3600 )) - ymdh_rst2_ini=`$NDATE ${RST2OFFSET} $ymdh_rst_ini` # DT2 relative to first-first-cycle restart file + ymdh_rst2_ini=`$NDATE ${RST2OFFSET} $YMDH` # DT2 relative to first-first-cycle restart file # First restart file for cycling time_rst_ini="`echo $ymdh_rst_ini | cut -c1-8` `echo $ymdh_rst_ini | cut -c9-10`0000" if [ ${DT_1_RST_WAV} = 1 ]; then @@ -116,15 +116,20 @@ time_rst1_end="`echo $ymdh_rst1_end | cut -c1-8` `echo $ymdh_rst1_end | cut -c9-10`0000" fi # Second restart file for checkpointing - time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" - time_rst2_end=$time_end -# Condition for gdas run or any other run when checkpoint stamp is > ymdh_end - if [ $ymdh_rst2_ini -ge $ymdh_end ]; then - ymdh_rst2_ini=`$NDATE 3 $ymdh_end` + if [ "${RSTTYPE_WAV}" = "T" ]; then time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" - time_rst2_end=$time_rst2_ini + time_rst2_end=$time_end +# Condition for gdas run or any other run when checkpoint stamp is > ymdh_end + if [ $ymdh_rst2_ini -ge $ymdh_end ]; then + ymdh_rst2_ini=`$NDATE 3 $ymdh_end` + time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" + time_rst2_end=$time_rst2_ini + fi + else + time_rst2_ini="$" + time_rst2_end= + DT_2_RST_WAV= fi - set +x echo ' ' echo 'Times in wave model format :' @@ -185,25 +190,27 @@ echo ' ' echo $msg [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : ${COMPONENTwave}.mod_def.${grdID} missing." >> $wavelog err=2;export err;${errchk} fi done # 1.b Netcdf Preprocessor template files + if [ "$WW3ATMINP" = 'YES' ]; then itype="$itype wind" ; fi + if [ "$WW3ICEINP" = 'YES' ]; then itype="$itype ice" ; fi + if [ "$WW3CURINP" = 'YES' ]; then itype="$itype cur" ; fi - for grdID in $grdINP + for type in $itype do - case $grdID in - $WAVECUR_FID ) - type='cur' + case $type in + wind ) + grdID=$WAVEWND_FID ;; - $WAVEWND_FID ) - type='wind' + ice ) + grdID=$WAVEICE_FID ;; - $WAVEICE_FID ) - type='ice' + cur ) + grdID=$WAVECUR_FID ;; * ) echo 'Input type not yet implemented' @@ -236,7 +243,6 @@ echo $msg echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : ww3_prnc.${type}.$grdID.tmpl missing." >> $wavelog err=4;export err;${errchk} fi done @@ -270,7 +276,6 @@ err=5;export err;${errchk} else mv -f ice.out $DATA/outtmp - rm -f ww3_prep.$WAVEICE_FID.tmpl mod_def.$WAVEICE_FID set +x echo ' ' echo ' Ice field unpacking successful.' @@ -306,9 +311,15 @@ # 3.a Gather and pre-process grib2 files ymdh=$ymdh_beg + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP while [ "$ymdh" -le "$ymdh_end" ] do - echo "$USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + nm=`expr $nm + 1` + else + echo "$USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + fi ymdh=`$NDATE $WAV_WND_HOUR_INC $ymdh` done @@ -322,14 +333,18 @@ set +x echo ' ' - echo " Executing the copy command file at : `date`" + echo " Executing the wnd grib cmd file at : `date`" echo ' ------------------------------------' echo ' ' [[ "$LOUD" = YES ]] && set -x if [ "$wavenproc" -gt '1' ] then - ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi exit=$? else ./cmdfile @@ -423,7 +438,6 @@ echo '**********************************' echo ' Possibly in multiple calls' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : error in wind grib2 files." >> $wavelog set +x for file in grb_*.out do @@ -448,7 +462,6 @@ echo ' ' echo $msg [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : fatal error in grib2 wind files." >> $wavelog err=6;export err;${errchk} fi @@ -475,7 +488,6 @@ echo '******************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : no wind files found." >> $wavelog err=7;export err;${errchk} fi @@ -505,10 +517,10 @@ ln -sf mod_def.$grdID mod_def.ww3 set +x - echo "Executing $EXECcode/ww3_prnc" + echo "Executing $EXECwave/ww3_prnc" [[ "$LOUD" = YES ]] && set -x - $EXECcode/ww3_prnc > prnc.out + $EXECwave/ww3_prnc > prnc.out err=$? if [ "$err" != '0' ] @@ -522,7 +534,6 @@ echo '*************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $grdID $date $cycle : error in waveprnc." >> $wavelog err=8;export err;${errchk} fi @@ -539,7 +550,6 @@ echo '****************************************' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $grdID $date $cycle : wind.ww3 missing." >> $wavelog err=9;export err;${errchk} fi @@ -582,7 +592,7 @@ echo '************************************************' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $grdID $date $cycle : error in wind increment." >> $wavelog + postmsg "$jlogfile" "$WAV_MOD_TAG prep $grdID $date $cycle : error in wind increment." err=10;export err;${errchk} fi @@ -626,57 +636,57 @@ # Prepare files for cfp process rm -f cmdfile touch cmdfile - chmod 744 cmfile + chmod 744 cmdfile - ymdh_rtofs=${PDY}00 # RTOFS runs once daily - ymdh_end=`$NDATE ${FHMAX_WAV_CUR} ${ymdh_rtofs}` - NDATE_DT=${WAV_CUR_HF_DT} - FLGHF='T' + ymdh_rtofs=${PDY}00 # RTOFS runs once daily use ${PDY}00 + ymdh_end=`$NDATE ${FHMAX_WAV_CUR} ${PDY}00` + NDATE_DT=${WAV_CUR_HF_DT} + FLGHF='T' - while [ "$ymdh_rtofs" -le "$ymdh_end" ] - do + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP + while [ "$ymdh_rtofs" -le "$ymdh_end" ] + do # Timing has to be made relative to the single 00z RTOFS cycle for that PDY - fhr_rtofs=`${NHOUR} ${ymdh_rtofs} ${PDY}00` - fext='f' + fhr_rtofs=`${NHOUR} ${ymdh_rtofs} ${PDY}00` + fext='f' - if [ ${fhr_rtofs} -lt 0 ] - then -# Data from nowcast phase - fhr_rtofs=`expr 48 + ${fhr_rtofs}` - fext='n' - fi + fh3_rtofs=`printf "%03d" "${fhr_rtofs#0}"` - fhr_rtofs=`printf "%03d\n" ${fhr_rtofs}` + curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_1hrly_prog.nc + curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_3hrly_prog.nc - curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fhr_rtofs}_1hrly_prog.nc - curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fhr_rtofs}_3hrly_prog.nc + if [ -s ${curfile1h} ] && [ "${FLGHF}" = "T" ] ; then + curfile=${curfile1h} + elif [ -s ${curfile3h} ]; then + curfile=${curfile3h} + FLGHF='F' + else + echo ' ' + set $setoff + echo ' ' + echo '************************************** ' + echo "*** FATAL ERROR: NO CUR FILE $curfile *** " + echo '************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "FATAL ERROR - NO CURRENT FILE (RTOFS)" + err=11;export err;${errchk} + exit 0 + echo ' ' + fi - if [ -s ${curfile1h} ] && [ "${FLGHF}" = "T" ] ; then - curfile=${curfile1h} - elif [ -s ${curfile3h} ]; then - curfile=${curfile3h} - FLGHF='F' - else - echo ' ' - set $setoff - echo ' ' - echo '************************************** ' - echo "*** FATAL ERROR: NO CUR FILE $curfile *** " - echo '************************************** ' - echo ' ' - set $seton - postmsg "$jlogfile" "FATAL ERROR - NO CURRENT FILE (RTOFS)" - err=11;export err;${errchk} - exit 0 - echo ' ' - fi + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + nm=`expr $nm + 1` + else + echo "$USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + fi - echo "$USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile > cur_$ymdh_rtofs.out 2>&1" >> cmdfile - if [ $fhr_rtofs -ge ${WAV_CUR_HF_FH} ] ; then - NDATE_DT=${WAV_CUR_DT} - fi - ymdh_rtofs=`$NDATE $NDATE_DT $ymdh_rtofs` - done + if [ $fhr_rtofs -ge ${WAV_CUR_HF_FH} ] ; then + NDATE_DT=${WAV_CUR_DT} + fi + ymdh_rtofs=`$NDATE $NDATE_DT $ymdh_rtofs` + done # Set number of processes for mpmd wavenproc=`wc -l cmdfile | awk '{print $1}'` @@ -684,14 +694,18 @@ set +x echo ' ' - echo " Executing the copy command file at : `date`" + echo " Executing the curr prnc cmdfile at : `date`" echo ' ------------------------------------' echo ' ' [[ "$LOUD" = YES ]] && set -x if [ $wavenproc -gt '1' ] then - ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi exit=$? else chmod 744 ./cmdfile @@ -711,7 +725,7 @@ [[ "$LOUD" = YES ]] && set -x fi - files=`ls ${WAVECUR_FID}.* 2> /dev/null` + files=`ls ${WAVECUR_DID}.* 2> /dev/null` if [ -z "$files" ] then @@ -724,7 +738,6 @@ echo '******************************************** ' echo ' ' [[ "$LOUD" = YES ]] && set -x - echo "$WAV_MOD_TAG prep $date $cycle : no current files found." >> $wavelog err=11;export err;${errchk} fi @@ -732,8 +745,8 @@ for file in $files do + echo $file cat $file >> cur.${WAVECUR_FID} - rm -f $file done cp -f cur.${WAVECUR_FID} ${COMOUT}/rundata/${COMPONENTwave}.${WAVECUR_FID}.$cycle.cur @@ -772,7 +785,6 @@ echo '*** FATAL ERROR : NO TEMPLATE FOR INPUT FILE *** ' echo '************************************************ ' echo ' ' - echo "${WAV_MOD_TAG} fcst $date $cycle : ww3_multi file missing." >> $wavelog echo $msg [[ "$LOUD" = YES ]] && set -x err=12;export err;${errchk} @@ -796,7 +808,6 @@ [[ "$LOUD" = YES ]] && set -x postmsg "$jlogfile" " FATAL ERROR : buoy.loc ($FIXwave/wave_${NET}.buoys) NOT FOUND" touch buoy.loc - echo "$WAV_MOD_TAG fcst $date $cycle : no buoy locations file ($FIXwave/wave_${NET}.buoys)." >> $wavelog err=13;export err;${errchk} fi @@ -840,6 +851,7 @@ case ${WW3ICEINP} in 'YES' ) NFGRIDS=`expr $NFGRIDS + 1` + ICEIFLAG='T' ICELINE=" '$WAVEICE_FID' F F F T F F F" ICEFLAG="$WAVEICE_FID" ;; @@ -852,14 +864,19 @@ case ${WW3CURINP} in 'YES' ) - NFGRIDS=`expr $NFGRIDS + 1` - CURRLINE=" '$WAVECUR_FID' F T F F F F F" - CURRFLAG="$WAVECUR_FID" + if [ "$WAVECUR_FID" != "$WAVEICE_FID" ]; then + NFGRIDS=`expr $NFGRIDS + 1` + CURRLINE=" '$WAVECUR_FID' F T F F F F F" + CURRFLAG="$WAVECUR_FID" + else # cur fields share the same grid as ice grid + ICELINE=" '$WAVEICE_FID' F T F ${ICEIFLAG} F F F" + CURRFLAG="$WAVEICE_FID" + fi ;; 'CPL' ) CURRFLAG="CPL:${waveesmfGRD}" CURIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEIFLAG} F F F" + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" ;; esac @@ -883,7 +900,7 @@ sed -e "s/NFGRIDS/$NFGRIDS/g" \ -e "s/NMGRIDS/${NMGRIDS}/g" \ -e "s/FUNIPNT/${FUNIPNT}/g" \ - -e "s/PNTSRV/${PNTSRV}/g" \ + -e "s/IOSRV/${IOSRV}/g" \ -e "s/FPNTPROC/${FPNTPROC}/g" \ -e "s/FGRDPROC/${FGRDPROC}/g" \ -e "s/OUTPARS/${OUTPARS_WAV}/g" \ @@ -930,24 +947,25 @@ # 6. Copy rmp grid remapping pre-processed coefficients - if ls $FIXwave/rmp_src_to_dst_conserv_* 2> /dev/null - then - for file in $(ls $FIXwave/rmp_src_to_dst_conserv_*) ; do - cp -f $file ${COMOUT}/rundata - done - else - msg="NO rmp precomputed nc files found, is this OK???" - postmsg "$jlogfile" "$msg" - set +x - echo ' ' - echo '************************************************ ' - echo '*** FATAL ERROR : NO PRECOMPUTED RMP FILES FOUND *** ' - echo '************************************************ ' - echo ' ' - echo "${WAV_MOD_TAG} prep $date $cycle : rmp*.nc not found." >> $wavelog - echo $msg - [[ "$LOUD" = YES ]] && set -x - err=13;export err;${errchk} + if [ "${USE_WAV_RMP:-YES}" = "YES" ]; then + if ls $FIXwave/rmp_src_to_dst_conserv_* 2> /dev/null + then + for file in $(ls $FIXwave/rmp_src_to_dst_conserv_*) ; do + cp -f $file ${COMOUT}/rundata + done + else + msg="NO rmp precomputed nc files found, is this OK???" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : NO PRECOMPUTED RMP FILES FOUND *** ' + echo '************************************************ ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=13;export err;${errchk} + fi fi diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh index 3e8bef351c..2afec2c65e 100755 --- a/ush/wave_grib2_sbs.sh +++ b/ush/wave_grib2_sbs.sh @@ -80,7 +80,7 @@ echo " Model ID : $WAV_MOD_TAG" [[ "$LOUD" = YES ]] && set -x - if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || [ -z "$EXECcode" ] || \ + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ [ -z "$gribflags" ] || \ [ -z "$GRIDNR" ] || [ -z "$MODNR" ] || [ -z "$SENDDBN" ] @@ -134,12 +134,12 @@ set +x echo " Run ww3_grib2" - echo " Executing $EXECcode/ww3_grib" + echo " Executing $EXECwave/ww3_grib" [[ "$LOUD" = YES ]] && set -x ENSTAG="" if [ ${waveMEMB} ]; then ENSTAG=".${membTAG}${waveMEMB}" ; fi outfile=${WAV_MOD_TAG}.${cycle}${ENSTAG}.${grdnam}.${grdres}.f${FH3}.grib2 - $EXECcode/ww3_grib + $EXECwave/ww3_grib > grib2_${grdnam}_${FH3}.out 2>&1 $WGRIB2 gribfile -set_date $CDATE -set_ftime "$fhr hour fcst" -grib ${COMOUT}/gridded/${outfile} err=$? @@ -159,6 +159,18 @@ # Create index $WGRIB2 -s $COMOUT/gridded/${outfile} > $COMOUT/gridded/${outfile}.idx +# Create grib2 subgrid is this is the source grid + if [ "${grdID}" = "${WAV_SUBGRBSRC}" ]; then + for subgrb in ${WAV_SUBGRB}; do + subgrbref=`echo ${!subgrb} | cut -d " " -f 1-20` + subgrbnam=`echo ${!subgrb} | cut -d " " -f 21` + subgrbres=`echo ${!subgrb} | cut -d " " -f 22` + subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2" + $COPYGB2 -g "${subgrbref}" -i0 -x ${COMOUT}/gridded/${outfile} ${COMOUT}/gridded/${subfnam} + $WGRIB2 -s $COMOUT/gridded/${subfnam} > $COMOUT/gridded/${subfnam}.idx + done + fi + # 1.e Save in /com if [ ! -s $COMOUT/gridded/${outfile} ] diff --git a/ush/wave_grid_interp.sh b/ush/wave_grid_interp.sh index bb91840212..273d8a813d 100755 --- a/ush/wave_grid_interp.sh +++ b/ush/wave_grid_interp.sh @@ -63,7 +63,7 @@ echo " Model ID : $WAV_MOD_TAG" [[ "$LOUD" = YES ]] && set -x - if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECcode" ] || \ + if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] then @@ -73,7 +73,7 @@ echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' echo '***************************************************' echo ' ' - echo "$YMDH $cycle $EXECcode $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + echo "$YMDH $cycle $EXECwave $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" [[ "$LOUD" = YES ]] && set -x postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" exit 1 @@ -136,10 +136,10 @@ set +x echo " Run ww3_gint - echo " Executing $EXECcode/ww3_gint + echo " Executing $EXECwave/ww3_gint [[ "$LOUD" = YES ]] && set -x - $EXECcode/ww3_gint + $EXECwave/ww3_gint 1> gint.{$grdID}.out 2>&1 err=$? # Write interpolation file to main TEMP dir area if not there yet diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh index 0f78d3f557..f2e0855331 100755 --- a/ush/wave_grid_interp_sbs.sh +++ b/ush/wave_grid_interp_sbs.sh @@ -71,7 +71,7 @@ echo " Model ID : $WAV_MOD_TAG" [[ "$LOUD" = YES ]] && set -x - if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECcode" ] || \ + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] then @@ -81,7 +81,7 @@ echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' echo '***************************************************' echo ' ' - echo "$CDATE $cycle $EXECcode $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + echo "$CDATE $cycle $EXECwave $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" [[ "$LOUD" = YES ]] && set -x postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" exit 1 @@ -144,10 +144,10 @@ set +x echo " Run ww3_gint - echo " Executing $EXECcode/ww3_gint + echo " Executing $EXECwave/ww3_gint [[ "$LOUD" = YES ]] && set -x - $EXECcode/ww3_gint + $EXECwave/ww3_gint 1> gint.${grdID}.out 2>&1 err=$? # Write interpolation file to main TEMP dir area if not there yet diff --git a/ush/wave_outp_spec.sh b/ush/wave_outp_spec.sh index 9cbcf6e9a6..2e902bc212 100755 --- a/ush/wave_outp_spec.sh +++ b/ush/wave_outp_spec.sh @@ -112,7 +112,7 @@ # 0.c Define directories and the search path. # The tested variables should be exported by the postprocessor script. - if [ -z "$CDATE" ] || [ -z "$dtspec" ] || [ -z "$EXECcode" ] || \ + if [ -z "$CDATE" ] || [ -z "$dtspec" ] || [ -z "$EXECwave" ] || \ [ -z "$WAV_MOD_TAG" ] || [ -z "${STA_DIR}" ] then set +x @@ -179,10 +179,10 @@ # 2.b Run the postprocessor set +x - echo " Executing $EXECcode/ww3_outp" + echo " Executing $EXECwave/ww3_outp" [[ "$LOUD" = YES ]] && set -x - $EXECcode/ww3_outp + $EXECwave/ww3_outp 1> outp_${specdir}_${buoy}.out 2>&1 err=$? if [ "$err" != '0' ] @@ -211,7 +211,6 @@ cat $outfile | sed -e '9,$d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull cat $coutfile | sed -e '8,$d' >> ${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull else - #cat $outfile | sed -e '15,$d' >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec cat $outfile >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec fi elif [ "${ymdh}" = "${YMDHE}" ] @@ -250,7 +249,7 @@ # rm -f mod_def.ww3 out_pnt.ww3 cd .. - mv -f $specdir_$buoy done.$specdir_$buoy + rm -rf ${specdir}_${bloc} set +x echo ' ' diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh index 1a6dd3608f..848088540c 100755 --- a/ush/wave_prnc_cur.sh +++ b/ush/wave_prnc_cur.sh @@ -23,40 +23,43 @@ set -x ymdh_rtofs=$1 curfile=$2 +fhr=$3 +fh3=`printf "%03d" "${fhr#0}"` # Timing has to be made relative to the single 00z RTOFS cycle for that PDY mkdir -p rtofs_${ymdh_rtofs} cd rtofs_${ymdh_rtofs} -ncks -x -v sst,sss,layer_density $curfile cur_uv_${PDY}_${fext}${fhr}.nc -ncks -O -a -h -x -v Layer cur_uv_${PDY}_${fext}${fhr}.nc cur_temp1.nc +ncks -x -v sst,sss,layer_density $curfile cur_uv_${PDY}_${fext}${fh3}.nc +ncks -O -a -h -x -v Layer cur_uv_${PDY}_${fext}${fh3}.nc cur_temp1.nc ncwa -h -O -a Layer cur_temp1.nc cur_temp2.nc ncrename -h -O -v MT,time cur_temp2.nc ncrename -h -O -d MT,time cur_temp2.nc ncks -v u_velocity,v_velocity cur_temp2.nc cur_temp3.nc -mv -f cur_temp3.nc cur_uv_${PDY}_${fext}${fhr}_flat.nc +mv -f cur_temp3.nc cur_uv_${PDY}_${fext}${fh3}_flat.nc # Convert to regular lat lon file - +# If weights need to be regenerated due to CDO ver change, use: +# $CDO genbil,r4320x2160 rtofs_glo_2ds_f000_3hrly_prog.nc weights.nc cp ${FIXwave}/weights_rtofs_to_r4320x2160.nc ./weights.nc # Interpolate to regular 5 min grid -$CDO remap,r4320x2160,weights.nc cur_uv_${PDY}_${fext}${fhr}_flat.nc cur_5min_01.nc +$CDO remap,r4320x2160,weights.nc cur_uv_${PDY}_${fext}${fh3}_flat.nc cur_5min_01.nc # Perform 9-point smoothing twice to make RTOFS data less noisy when # interpolating from 1/12 deg RTOFS grid to 1/6 deg wave grid if [ "WAV_CUR_CDO_SMOOTH" = "YES" ]; then $CDO -f nc -smooth9 cur_5min_01.nc cur_5min_02.nc - $CDO -f nc -smooth9 cur_5min_02.nc cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc + $CDO -f nc -smooth9 cur_5min_02.nc cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc else - mv cur_5min_01.nc cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc + mv cur_5min_01.nc cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc fi # Cleanup -rm -f cur_temp[123].nc cur_5min_??.nc cur_glo_uv_${PDY}_${fext}${fhr}.nc weights.nc +rm -f cur_temp[123].nc cur_5min_??.nc cur_glo_uv_${PDY}_${fext}${fh3}.nc weights.nc -if [ ${fhr_wave} -gt ${WAVHINDH} ] +if [ ${fhr} -gt 0 ] then sed -e "s/HDRFL/F/g" ${FIXwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp else @@ -64,12 +67,12 @@ else fi rm -f cur.nc -ln -s cur_glo_uv_${PDY}_${fext}${fhr}_5min.nc cur.nc -ln -s ${DATA}/mod_def.rtofs_5m ./mod_def.ww3 +ln -s cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc cur.nc +ln -s ${DATA}/mod_def.${WAVECUR_FID} ./mod_def.ww3 -$EXECcode/ww3_prnc +$EXECwave/ww3_prnc 1> prnc_${WAVECUR_FID}_${ymdh_rtofs}.out 2>&1 -mv -f current.ww3 ${DATA}/${WAVECUR_FID}.${ymdh_rtofs} +mv -f current.ww3 ${DATA}/${WAVECUR_DID}.${ymdh_rtofs} cd ${DATA} diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh index 328b8c6728..c7a0a1a720 100755 --- a/ush/wave_prnc_ice.sh +++ b/ush/wave_prnc_ice.sh @@ -53,7 +53,7 @@ postmsg "$jlogfile" "Making ice fields." if [ -z "$YMDH" ] || [ -z "$cycle" ] || \ - [ -z "$COMOUT" ] || [ -z "$FIXwave" ] || [ -z "$EXECcode" ] || \ + [ -z "$COMOUT" ] || [ -z "$FIXwave" ] || [ -z "$EXECwave" ] || \ [ -z "$WAV_MOD_TAG" ] || [ -z "$WAVEICE_FID" ] || [ -z "$SENDCOM" ] || \ [ -z "$COMIN_WAV_ICE" ] || [ -z "$COMPONENTwave" ] then @@ -141,7 +141,7 @@ cp -f ${DATA}/ww3_prnc.ice.$WAVEICE_FID.inp.tmpl ww3_prnc.inp - $EXECcode/ww3_prnc > wave_prnc.out + $EXECwave/ww3_prnc 1> prnc_${WAVEICE_FID}_${cycle}.out 2>&1 err=$? if [ "$err" != '0' ] diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh index edeb1994d9..b5550b6fd4 100755 --- a/ush/wave_tar.sh +++ b/ush/wave_tar.sh @@ -30,7 +30,7 @@ # Use LOUD variable to turn on/off trace. Defaults to YES (on). export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES - [[ "$LOUD" != YES ]] && set +x + [[ "$LOUD" != YES ]] && set -x cd $DATA postmsg "$jlogfile" "Making TAR FILE" @@ -98,6 +98,7 @@ set +x echo ' ' echo ' Making tar file ...' + set -x count=0 countMAX=5 @@ -106,14 +107,12 @@ while [ "$count" -lt "$countMAX" ] && [ "$tardone" = 'no' ] do - [[ "$LOUD" = YES ]] && set -v - # JY nf=`ls $ID.*.$type | wc -l | awk '{ print $1 }'` nf=`ls | awk '/'$ID.*.$filext'/ {a++} END {print a}'` - if [ "$nf" = "$nb" ] + nbm2=$(( $nb - 2 )) + if [ $nf -ge $nbm2 ] then tar -cf $ID.$cycle.${type}_tar ./$ID.*.$filext exit=$? - set +v; [[ "$LOUD" = YES ]] && set -x if [ "$exit" != '0' ] then From 1bafe0550eedc774e381924863dc60309884d0ec Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 9 Jun 2020 14:22:14 -0500 Subject: [PATCH 68/91] cleaning up double cplwav --- ush/parsing_namelists_FV3.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 4f08c0d438..083c2e4015 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -225,8 +225,6 @@ EOF fi cat >> input.nml <> input.nml <> input.nml << EOF reiflag = ${reiflag:-"1"} EOF From 66bcf5fb9c579cb55831122220315b81e8bea84d Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 9 Jun 2020 16:28:05 -0500 Subject: [PATCH 69/91] changes to wave case --- workflow/cases/coupled_free_forecast_wave.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index 91e373dc9b..4610c4f856 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -5,16 +5,16 @@ case: settings: SDATE: 2013-04-01t00:00:00 - EDATE: 2013-04-02t00:00:00 + EDATE: 2013-04-01t00:00:00 cplwav: .true. cplwav2atm: .true. cplflx: .true. print_esmf: .true. nems_temp: 'med_atm_ocn_ice_wav' - nems_temp_cold: 'med_atm_ocn_ice_wav' + nems_temp_cold: 'medcold_atm_ocn_ice_wav' mom6ic_prepared: .false. -# cplflx: .false. + KEEPDATA: NO nsst: NST_MODEL: 0 From 402e4ebd7bdeef2f12fafb3dd845ea7467d48e17 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 9 Jun 2020 16:52:51 -0500 Subject: [PATCH 70/91] bugfix in layout file --- workflow/layout/free_forecast_gfs.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index ee09d616c7..766c393d3a 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -53,17 +53,16 @@ suite: !Cycle ecflow_def: "edit RUN 'gfs'" prep: !Family + Disable: !calc doc.settings.cplwav=='.false.' waveinit: !Task <<: *exclusive_task_template - Disable: !calc doc.settings.cplwav=='.false.' Trigger: !Depend up.up.ics.jgfs_emc_mom6ic resources: !calc partition.resources.run_prep J_JOB: rocoto/waveinit.sh waveprep: !Task <<: *exclusive_task_template - Disable: !calc doc.settings.cplwav=='.false.' Trigger: !Depend waveinit resources: !calc partition.resources.run_prep J_JOB: rocoto/waveprep.sh From a40e05a54f7797a6816124d7357b596d7286a143 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 9 Jun 2020 18:12:50 -0500 Subject: [PATCH 71/91] bug fix in layout file --- workflow/layout/free_forecast_gfs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index 766c393d3a..3d869fb186 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -184,7 +184,7 @@ suite: !Cycle wavepost: !TaskArray RUN: !calc up.RUN - Disable: !calc not doc.settings.cplwav + Disable: !calc doc.settings.cplwav=='.false.' Dimensions: fhr: !calc doc.output_settings.ocnpost_hours jgfs_wavepost_fhr_el: !TaskElement From fa16b3734868c372747028cd5e935d5a8e5d0c79 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Tue, 9 Jun 2020 18:33:27 -0500 Subject: [PATCH 72/91] move OCNPETS, ICEPETS and WAVEPETS into dedicated model-specific sessions instead of fv3_gfs_settings --- workflow/cases/coupled_free_forecast.yaml | 6 ++++++ workflow/cases/coupled_free_forecast_wave.yaml | 6 +++++- workflow/config/fcst.yaml | 6 +++--- workflow/defaults/default_resources.yaml | 4 ++-- workflow/defaults/fv3_gfs.yaml | 6 ------ workflow/defaults/wave.yaml | 4 ++++ 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index fe852cf499..1e62c51866 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -46,6 +46,12 @@ case: ICEPETS: 48 cdmbgwd: "1.0,1.2" + ocn_settings: + OCNPETS: 120 + + ice_settings: + ICEPETS: 48 + post: downset: 2 GOESF: no diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index 91e373dc9b..f25e86ae49 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -44,9 +44,13 @@ case: WGRP: 1 WGRP_NTASKS: 24 WRTIOBUF: "32M" + cdmbgwd: "1.0,1.2" + + ocn_settings: OCNPETS: 120 + + ice_settings: ICEPETS: 48 - cdmbgwd: "1.0,1.2" post: downset: 2 diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 7c93dadfc5..4265ffc74a 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -67,9 +67,9 @@ config_fcst: ####################################################################### # PE Mapping export ATMPETS="{doc.fv3_gfs_settings.ATMPETS}" - export OCNPETS="{doc.fv3_gfs_settings.OCNPETS}" - export ICEPETS="{doc.fv3_gfs_settings.ICEPETS}" - export WAVPETS="{doc.fv3_gfs_settings.WAVPETS}" + export OCNPETS="{doc.ocn_settings.OCNPETS}" + export ICEPETS="{doc.ice_settings.ICEPETS}" + export WAVPETS="{doc.wave_settings.WAVPETS}" # ####################################################################### diff --git a/workflow/defaults/default_resources.yaml b/workflow/defaults/default_resources.yaml index 5a6f05e7d0..1efe9d0cc0 100644 --- a/workflow/defaults/default_resources.yaml +++ b/workflow/defaults/default_resources.yaml @@ -306,7 +306,7 @@ default_resources: &default_resources run_coupled_fcst: !JobRequest - batch_memory: "1024M" - mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS+doc.fv3_gfs_settings.WAVPETS + mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.ocn_settings.OCNPETS+doc.ice_settings.ICEPETS+doc.wave_settings.WAVPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_wall @@ -314,7 +314,7 @@ default_resources: &default_resources run_coupled_medcold: !JobRequest - batch_memory: "1024M" - mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.fv3_gfs_settings.OCNPETS+doc.fv3_gfs_settings.ICEPETS+doc.fv3_gfs_settings.WAVPETS + mpi_ranks: !icalc doc.fv3_gfs_settings.ATMPETS+doc.ocn_settings.OCNPETS+doc.ice_settings.ICEPETS+doc.wave_settings.WAVPETS max_ppn: !icalc doc.gfs_resource_table.gfsfcst_ppn OMP_NUM_THREADS: !icalc doc.fv3_gfs_settings.layout.nth walltime: !icalc doc.gfs_resource_table.coupfcst_medcold_wall diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index f082826734..c9de024316 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -160,9 +160,3 @@ fv3_gfs_defaults: &fv3_gfs_defaults - when: !calc QUILTING do: !calc layout.x * layout.y * 6 + layout.WGRP * layout.WGRP_NTASKS - otherwise: !calc layout.x * layout.y * 6 - OCNPETS: 120 - ICEPETS: 48 - WAVPETS: !FirstTrue - - when: !calc doc.settings.cplwav - do: 24 - - otherwise: 0 diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 575a75f9d7..2cecb1df5f 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -1,5 +1,9 @@ wave_defaults: &wave_defaults MOD: ww3 + WAVPETS: !FirstTrue + - when: !calc doc.settings.cplwav + do: 24 + - otherwise: 0 sigMODE: prep waveGRD: 'glo_10m aoc_9km ant_9km' waveGRDN: '1 2 3' From 4d74b90974bb86c7b0d56177a18e9c21509f5754 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 9 Jun 2020 20:15:59 -0500 Subject: [PATCH 73/91] first try for adding wave ICs --- jobs/rocoto/coupled_ic.sh | 14 ++++++++------ workflow/cases/coupled_free_forecast_wave.yaml | 2 +- workflow/defaults/wave.yaml | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index 045171f807..d0c2f23045 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -20,7 +20,7 @@ status=$? ############################################################### # Source relevant configs -configs="base fv3ic" +configs="base fv3ic wave" for config in $configs; do . $EXPDIR/config.${config} status=$? @@ -38,6 +38,7 @@ status=$? CPL_ATMIC=CFSR CPL_OCNIC=CPC3Dvar CPL_ICEIC=CPC +CPL_WAVIC=CFSR OCNRES=025 ICERES=025 ICERES=${ICERES:-"025"} @@ -63,11 +64,12 @@ cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/MOM*.nc $ICSDIR/$CDATE/ocn/ #Setup Ice IC files cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/cice5_model_${ICERESdec}.res_$CDATE.nc $ICSDIR/$CDATE/ice/ -#TODO for wave coupling -#if cplwav=true - #Setup Wave IC files -#fi - +if [ $cplwave = ".true." ]; then + for grdID in ${$waveGRD} + do + cp $ORIGIN_ROOT/$CPL_WAVIC/$CDATE/wav/$grdID/*restart.$grdID $ICSDIR/$CDATE/wav/ + done +fi export OUTDIR="$ICSDIR/$CDATE/$CDUMP/$CASE/INPUT" diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index 4610c4f856..e446d42c89 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -14,7 +14,7 @@ case: nems_temp: 'med_atm_ocn_ice_wav' nems_temp_cold: 'medcold_atm_ocn_ice_wav' mom6ic_prepared: .false. - KEEPDATA: NO + KEEPDATA: YES nsst: NST_MODEL: 0 diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 575a75f9d7..978b32fe81 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -1,7 +1,7 @@ wave_defaults: &wave_defaults MOD: ww3 sigMODE: prep - waveGRD: 'glo_10m aoc_9km ant_9km' + waveGRD: 'gwes_glo30m' waveGRDN: '1 2 3' waveGRDG: '10 20 30' WAV_CUR_DT: 3 From 8bfc88969bd3d2e9ef703203bb71df648ecc3cb8 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Wed, 10 Jun 2020 09:10:51 -0500 Subject: [PATCH 74/91] fix bugs in config.wave and coupled_ic.sh --- jobs/JWAVE_INIT | 4 ++++ jobs/JWAVE_POST_SBS | 4 ++++ jobs/JWAVE_PREP | 4 ++++ jobs/rocoto/coupled_ic.sh | 18 ++++++++++++------ workflow/config/base.yaml | 1 - workflow/config/wave.yaml | 35 +++++++++++++++-------------------- workflow/defaults/wave.yaml | 7 ++++++- 7 files changed, 45 insertions(+), 28 deletions(-) diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index 114f35e21b..708542e9ec 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -45,6 +45,10 @@ sh ./PDY export pgmout=OUTPUT.$$ +export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) +export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) +export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) + export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS index be1bb2ee4b..51d658c0d1 100755 --- a/jobs/JWAVE_POST_SBS +++ b/jobs/JWAVE_POST_SBS @@ -42,6 +42,10 @@ sh ./PDY export pgmout=OUTPUT.$$ +export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) +export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) +export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) + export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 91d9dcc1ce..74ccd86eaf 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -49,6 +49,10 @@ export RPDY=$PDY export pgmout=OUTPUT.$$ +export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) +export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) +export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) + export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index 045171f807..9726ef7bfe 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -x + ############################################################### ## Abstract: ## Create FV3 initial conditions from GFS intitial conditions @@ -20,7 +22,7 @@ status=$? ############################################################### # Source relevant configs -configs="base fv3ic" +configs="base fv3ic wave" for config in $configs; do . $EXPDIR/config.${config} status=$? @@ -38,6 +40,7 @@ status=$? CPL_ATMIC=CFSR CPL_OCNIC=CPC3Dvar CPL_ICEIC=CPC +CPL_WAVIC=CFSR OCNRES=025 ICERES=025 ICERES=${ICERES:-"025"} @@ -63,11 +66,12 @@ cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/MOM*.nc $ICSDIR/$CDATE/ocn/ #Setup Ice IC files cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/cice5_model_${ICERESdec}.res_$CDATE.nc $ICSDIR/$CDATE/ice/ -#TODO for wave coupling -#if cplwav=true - #Setup Wave IC files -#fi - +if [ $cplwav = ".true." ]; then + for grdID in $waveGRD + do + cp $ORIGIN_ROOT/$CPL_WAVIC/$CDATE/wav/$grdID/*restart.$grdID $ICSDIR/$CDATE/wav/ + done +fi export OUTDIR="$ICSDIR/$CDATE/$CDUMP/$CASE/INPUT" @@ -80,4 +84,6 @@ $NLN $OUTDIR . ############################################################## # Exit cleanly + +set +x exit 0 diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index 050b9c1b0e..5ba4e37a66 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -99,7 +99,6 @@ config_base: # Build paths relative to $HOMEgfs export HOMEgsi="$HOMEgfs" export FIXgsi="{doc.places.get('FIXgsi','$HOMEgfs/fix/fix_gsi')}" - export HOMEfv3gfs="{doc.places.get('HOMEfv3gfs','$HOMEgfs/sorc/fv3gfs.fd')}" export HOMEpost="{doc.places.get('HOMEpost','$HOMEgfs')}" export HOMEobsproc_prep="{doc.places.get('HOMEobsproc_prep', '$BASE_GIT/obsproc/obsproc_prep_RB-5.2.0')}" export HOMEobsproc_network="{doc.places.get('HOMEobsproc_network', '$BASE_GIT/obsproc/obsproc_global_RB-3.2.0')}" diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 8f90d43a05..14e7f8d099 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -13,7 +13,7 @@ config_wave: echo "BEGIN: config.wave" export wave_sys_ver=v1.0.0 - export COMPONENTRSTwave=$((COMPONENTRSTwave:-gdaswave)) + export COMPONENTRSTwave={doc.wave_settings.COMPONENTRSTwave} export HOMEwave={doc.places.HOMEgfs} export HOMEgefs={doc.places.HOMEgfs} @@ -38,11 +38,11 @@ config_wave: else export FHMAX_WAV={doc.output_settings.FHMAX_WAV_GFS} fi - export WAVHINDH=$((WAVHINDH:-0)) - export FHMIN_WAV=${doc.output_settings.FHMIN_WAV} - export FHOUT_WAV=${doc.output_settings.FHOUT_WAV} - export FHMAX_HF_WAV=${doc.output_settings.FHMAX_HF_WAV} - export FHOUT_HF_WAV=${doc.output_settings.FHOUT_HF_WAV} + export WAVHINDH={doc.wave_settings.WAVHINDH} + export FHMIN_WAV={doc.output_settings.FHMIN_WAV} + export FHOUT_WAV={doc.output_settings.FHOUT_WAV} + export FHMAX_HF_WAV={doc.output_settings.FHMAX_HF_WAV} + export FHOUT_HF_WAV={doc.output_settings.FHOUT_HF_WAV} # Output stride export WAV_WND_HOUR_INC=1 # This value should match with the one used in @@ -95,7 +95,7 @@ config_wave: export DT_2_RST_WAV=43200 # restart stride for checkpointing restart export RSTIOFF_WAV=0 # first restart file offset relative to model start - export RUNMEM=$((RUNMEM:--1)) + export RUNMEM={doc.wave_settings.RUNMEM} if [ $RUNMEM = -1 ]; then # No suffix added to model ID in case of deterministic run @@ -124,25 +124,20 @@ config_wave: export NTASKS={doc.partition_common.resources.run_prep[0].mpi_ranks} # # # Path to HOME Directory - export CODEwave=$((CODEwave:-$HOMEfv3gfs/WW3)) - export EXECwave=$((EXECwave:-$HOMEwave/exec)) - export FIXwave={doc.places.FIXwave} - export PARMwave=$((PARMwave:-$HOMEwave/parm/wave)) - export USHwave=$((USHwave:-$HOMEwave/ush)) - export EXECcode=$((EXECcode:-$CODEwave/exec)) - # - # # Set COM Paths and GETGES environment - export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) - export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) - export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) + export CODEwave="{doc.places.HOMEgfs}/sorc/fv3gfs.fd/WW3" + export EXECwave="{doc.places.HOMEgfs}/exec" + export FIXwave="{doc.places.FIXwave}" + export PARMwave="{doc.places.HOMEgfs}/parm/wave" + export USHwave="{doc.places.HOMEgfs}/ush" + export EXECcode="{doc.places.HOMEgfs}/sorc/fv3gfs.fd/WW3/exec" # export MP_PULSE=0 export wavelog=$COMOUTwave/wave.log # Set mpi serial command - export wavempexec=$((wavempexec:-"mpirun -n")) - export wave_mpmd=$((wave_mpmd:-"cfp")) + export wavempexec="{doc.wave_settings.wavempexec}" + export wave_mpmd="{doc.wave_settings.wave_mpmd}" # # # Set wave model ID tag to include member number # # if ensemble; waveMEMB var empty in deterministic diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 2cecb1df5f..66c5c36942 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -4,11 +4,16 @@ wave_defaults: &wave_defaults - when: !calc doc.settings.cplwav do: 24 - otherwise: 0 + COMPONENTRSTwave: gdaswave + WAVHINDH: 0 + RUNMEM: -1 sigMODE: prep - waveGRD: 'glo_10m aoc_9km ant_9km' + waveGRD: 'gwes_glo30m' waveGRDN: '1 2 3' waveGRDG: '10 20 30' WAV_CUR_DT: 3 WAV_CUR_HF_DT: 1 WAV_CUR_HF_FH: 72 WAV_CUR_CDO_SMOOTH: NO + wavempexec: "mpirun -n" + wave_mpmd: "cfp" From 7393efc69618394dd98734be35eecdd934966cb5 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 10 Jun 2020 16:13:35 -0500 Subject: [PATCH 75/91] updates for wave defaults for s2s p4 --- workflow/config/wave.yaml | 18 +++++++++--------- workflow/defaults/wave.yaml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 14e7f8d099..32b84b8c0a 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -23,14 +23,14 @@ config_wave: export waveGRDG='10 20 30' # gridgroup for ww3_multi # ESMF input grid - export waveesmfGRD='glox_10m' # input grid + export waveesmfGRD='' # input grid # Grids for output fields export waveuoutpGRD=points - export waveinterpGRD='glo_15mxt' # Grids that need to be interpolated from native + export waveinterpGRD='' # Grids that need to be interpolated from native # in POST will generate grib unless gribOK not set export wavesbsGRD='' # side-by-side grids generated as wave model runs, writes to com - export wavepostGRD='glo_10m aoc_9km ant_9km' # Native grids that will be post-processed (grib2) + export wavepostGRD='gwes_30m' # Native grids that will be post-processed (grib2) if [ "$CDUMP" = "gdas" ] then @@ -53,10 +53,10 @@ config_wave: export FHINCP_WAV=`expr $DTPNT_WAV / 3600` # Grids for input fields - export WAVEICE_DID=sice - export WAVEICE_FID=icean_5m - export WAVECUR_DID=rtofs - export WAVECUR_FID=rtofs_5m + export WAVEICE_DID= + export WAVEICE_FID= + export WAVECUR_DID= + export WAVECUR_FID= export WAVEWND_DID= export WAVEWND_FID= @@ -107,8 +107,8 @@ config_wave: # # Determine if wave component needs input and/or is coupled export WW3ATMINP='CPL' - export WW3ICEINP='YES' - export WW3CURINP='YES' + export WW3ICEINP='CPL' + export WW3CURINP='CPL' # if [ "$WW3ICEINP" = "YES" ]; then export WAVICEFILE=$CDUMP.t$((cyc))z.seaice.5min.grib2 diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 66c5c36942..2bf7847a2a 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -8,7 +8,7 @@ wave_defaults: &wave_defaults WAVHINDH: 0 RUNMEM: -1 sigMODE: prep - waveGRD: 'gwes_glo30m' + waveGRD: 'gwes_30m' waveGRDN: '1 2 3' waveGRDG: '10 20 30' WAV_CUR_DT: 3 From 7a692ed4c98893b7086a12ebd2625d9b69ebeb94 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Thu, 11 Jun 2020 13:17:52 -0500 Subject: [PATCH 76/91] updates for running wave jobs --- jobs/JWAVE_INIT | 12 +++++------- jobs/rocoto/waveinit.sh | 4 ---- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index 708542e9ec..2638512a4b 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -45,9 +45,9 @@ sh ./PDY export pgmout=OUTPUT.$$ -export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) -export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) -export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) +export COMINice=${COMINice:-$COMROOTp2/omb/prod} +export COMINwnd=${COMINwnd:-$COMROOT/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod} export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} @@ -63,8 +63,6 @@ fi $HOMEwave/scripts/exwave_init.sh # Remove temp directories -if [ "$KEEPDATA" != "YES" ]; then - cd $DATAROOT - rm -rf $DATA -fi +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + date diff --git a/jobs/rocoto/waveinit.sh b/jobs/rocoto/waveinit.sh index ce7397c3e7..2111727d6e 100755 --- a/jobs/rocoto/waveinit.sh +++ b/jobs/rocoto/waveinit.sh @@ -15,7 +15,3 @@ $HOMEgfs/jobs/JWAVE_INIT status=$? exit $status -############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi -exit 0 From 4e12aa9cc191f4e8995acc9a52fec05a15a8127a Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Fri, 12 Jun 2020 11:46:10 -0500 Subject: [PATCH 77/91] point WW3-related executables through HOMEgfs/fv3_coupled.fd/exec --- jobs/JWAVE_INIT | 4 ---- workflow/config/wave.yaml | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index 708542e9ec..114f35e21b 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -45,10 +45,6 @@ sh ./PDY export pgmout=OUTPUT.$$ -export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) -export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) -export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) - export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} export COMIN=${COMIN:-${COMINwave}/${COMPONENTwave}.${PDY}/${cyc}} diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 14e7f8d099..6ae9ecaee5 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -124,12 +124,12 @@ config_wave: export NTASKS={doc.partition_common.resources.run_prep[0].mpi_ranks} # # # Path to HOME Directory - export CODEwave="{doc.places.HOMEgfs}/sorc/fv3gfs.fd/WW3" + export CODEwave="{doc.places.HOMEgfs}/sorc/fv3_coupled.fd/WW3" export EXECwave="{doc.places.HOMEgfs}/exec" export FIXwave="{doc.places.FIXwave}" export PARMwave="{doc.places.HOMEgfs}/parm/wave" export USHwave="{doc.places.HOMEgfs}/ush" - export EXECcode="{doc.places.HOMEgfs}/sorc/fv3gfs.fd/WW3/exec" + export EXECcode="{doc.places.HOMEgfs}/sorc/fv3_coupled.fd/WW3/exec" # export MP_PULSE=0 From d70245519235cca42128653639f32ffcd5304f4f Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 15 Jun 2020 09:57:08 -0500 Subject: [PATCH 78/91] ocean post hours at boundary are processed twice, now fixed. --- workflow/layout/free_forecast_gfs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index 3d869fb186..90b0108553 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -170,7 +170,7 @@ suite: !Cycle resources: !calc partition.resources.run_one_node_downstream Name: !expand p_{dimval.fhr:03d} FHR: !expand "{dimval.fhr:03d}" - OCN_FHRLST: !calc "tools.seq(dimval.fhr, dimval.fhr+doc.output_settings.OCN_INTERVAL, 6)" + OCN_FHRLST: !calc "tools.seq(dimval.fhr, dimval.fhr+doc.output_settings.OCN_INTERVAL-6, 6)" J_JOB: rocoto/ocnpost.sh Trigger: !Depend up.forecast ecflow_def: !expand "edit FHR '{FHR}'" From a0afd7e8f3248d649af6a29d56ea338116b51711 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 18 Jun 2020 12:23:23 +0000 Subject: [PATCH 79/91] wave init job now works on hera --- env/HERA.env | 5 +++++ jobs/JWAVE_INIT | 4 ++++ jobs/JWAVE_PREP | 4 ++++ scripts/exwave_init.sh | 4 +--- scripts/exwave_prep.sh | 3 +-- workflow/defaults/wave.yaml | 2 -- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/env/HERA.env b/env/HERA.env index 642fc33c4b..31a1e43fcc 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -154,6 +154,11 @@ elif [ $step = "fv3ic" ]; then [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max export APRUN_CHGRES="time" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" ]; then + + export mpmd="--multi-prog" + export CFP_MP="YES" + elif [ $step = "postsnd" ]; then nth_max=$(($npe_node_max / $npe_node_postsnd)) diff --git a/jobs/JWAVE_INIT b/jobs/JWAVE_INIT index 2638512a4b..57300adad5 100755 --- a/jobs/JWAVE_INIT +++ b/jobs/JWAVE_INIT @@ -59,6 +59,10 @@ if [ $SENDCOM = YES ]; then mkdir -p $COMOUT/rundata fi +# Set mpi serial command +export wavempexec=${launcher:-"mpirun -n"} +export wave_mpmd=${mpmd:-"cfp"} + # Execute the Script $HOMEwave/scripts/exwave_init.sh diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 74ccd86eaf..f6b3d11c2d 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -83,6 +83,10 @@ if [ $SENDCOM = YES ]; then mkdir -p $COMOUT fi +# Set mpi serial command +export wavempexec=${launcher:-"mpirun -n"} +export wave_mpmd=${mpmd:-"cfp"} + # Execute the Script $HOMEwave/scripts/exwave_prep.sh diff --git a/scripts/exwave_init.sh b/scripts/exwave_init.sh index 848222d5ed..2668036a6d 100755 --- a/scripts/exwave_init.sh +++ b/scripts/exwave_init.sh @@ -230,7 +230,5 @@ echo ' ' [[ "$LOUD" = YES ]] && set -x - msg="$job completed normally" - postmsg "$jlogfile" "$msg" - + exit $err # End of MWW3 init config script ------------------------------------------- # diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 98711b574f..d98e8fd8b1 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -1019,7 +1019,6 @@ echo ' ' [[ "$LOUD" = YES ]] && set -x - msg="$job completed normally" - postmsg "$jlogfile" "$msg" + exit $err # End of MWW3 preprocessor script ------------------------------------------- # diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 2bf7847a2a..01ddc853db 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -15,5 +15,3 @@ wave_defaults: &wave_defaults WAV_CUR_HF_DT: 1 WAV_CUR_HF_FH: 72 WAV_CUR_CDO_SMOOTH: NO - wavempexec: "mpirun -n" - wave_mpmd: "cfp" From 59c35f0e346c8927eef9f5fcf0bb57dfb2d57f62 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 18 Jun 2020 13:24:46 +0000 Subject: [PATCH 80/91] adding missing file from last commit --- workflow/config/wave.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index efe95d964e..3c27fc5770 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -135,10 +135,6 @@ config_wave: export wavelog=$COMOUTwave/wave.log - # Set mpi serial command - export wavempexec="{doc.wave_settings.wavempexec}" - export wave_mpmd="{doc.wave_settings.wave_mpmd}" - # # # Set wave model ID tag to include member number # # if ensemble; waveMEMB var empty in deterministic export WAV_MOD_TAG=$COMPONENTwave$waveMEMB From d74f139e54841e93693568a1587b7d36841faec2 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Thu, 18 Jun 2020 08:38:44 -0500 Subject: [PATCH 81/91] add ocean, ice and wave configurable variables --- workflow/defaults/fv3_gfs.yaml | 1 + workflow/defaults/ice.yaml | 2 ++ workflow/defaults/ocn.yaml | 2 ++ workflow/defaults/wave.yaml | 1 + workflow/schema/ice.yaml | 6 ++++++ workflow/schema/ocn.yaml | 6 ++++++ workflow/schema/wave.yaml | 3 +++ 7 files changed, 21 insertions(+) diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index c9de024316..a9923e3279 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -3,6 +3,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults CASE: C384 LEVS: 65 CCPP_SUITE: IPD + CPL_ATMIC: CFSR FHCYC: 24 FHCYC_GDAS: 1 FHCYC_GFS: 24 diff --git a/workflow/defaults/ice.yaml b/workflow/defaults/ice.yaml index f885d70ce8..2feccddf20 100644 --- a/workflow/defaults/ice.yaml +++ b/workflow/defaults/ice.yaml @@ -2,4 +2,6 @@ ice_defaults: &ice_defaults MOD: cice5 + ICERES: "025" + CPL_ICEIC: CPC ICEPETS: 48 diff --git a/workflow/defaults/ocn.yaml b/workflow/defaults/ocn.yaml index 5ccb468d52..f77016c971 100644 --- a/workflow/defaults/ocn.yaml +++ b/workflow/defaults/ocn.yaml @@ -2,4 +2,6 @@ ocn_defaults: &ocn_defaults MOD: mom6 + CPL_OCNIC: CPC3Dvar + OCNRES: "025" OCNPETS: 120 diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 2bf7847a2a..e77f6bb6a5 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -1,5 +1,6 @@ wave_defaults: &wave_defaults MOD: ww3 + CPL_WAVIC: CFSR WAVPETS: !FirstTrue - when: !calc doc.settings.cplwav do: 24 diff --git a/workflow/schema/ice.yaml b/workflow/schema/ice.yaml index afbcf32552..fdb6f5cfe2 100644 --- a/workflow/schema/ice.yaml +++ b/workflow/schema/ice.yaml @@ -4,3 +4,9 @@ ice_settings_template: !Template &ice_settings_template type: string allowed: [ cice5, cice6 ] description: "model selection for ice" + ICERES: + type: string + allowed: [ '025', '050' ] + CPL_ICEIC: + type: string + allowed: [ 'CFSR', 'CPC' ] diff --git a/workflow/schema/ocn.yaml b/workflow/schema/ocn.yaml index a349d09fd9..b9830e848b 100644 --- a/workflow/schema/ocn.yaml +++ b/workflow/schema/ocn.yaml @@ -7,3 +7,9 @@ ocn_settings_template: !Template &ocn_settings_template type: string allowed: [ mom6, hycom ] description: "model selection for ocean" + OCNRES: + type: string + allowed: [ '025', '050' ] + CPL_OCNIC: + type: string + allowed: [ 'CFSR', 'CPC3Dvar' ] diff --git a/workflow/schema/wave.yaml b/workflow/schema/wave.yaml index 57295b9965..c6a4026c26 100644 --- a/workflow/schema/wave.yaml +++ b/workflow/schema/wave.yaml @@ -7,3 +7,6 @@ wave_settings_template: !Template &wave_settings_template type: string allowed: [ ww3, swan ] description: "model selection for wave" + CPL_WAVIC: + type: string + allowed: [ 'CFSR' ] From 2909c7d069b2aa6a0eed667f7eb839a10030208d Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Thu, 18 Jun 2020 08:53:01 -0500 Subject: [PATCH 82/91] add ocean, ice and wave configurable variables --- workflow/config/fcst.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 4265ffc74a..27af1d39fa 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -96,6 +96,15 @@ config_fcst: export do_sat_adj="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.do_sat_adjust)}" export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} + # ocean and ice variables + export CPL_ATMIC={doc.fv3_gfs_settings.CPL_ATMIC} + export CPL_ICEIC={doc.ice_settings.CPL_ICEIC} + export CPL_OCNIC={doc.ocn_settings.CPL_OCNIC} + export CPL_WAVIC={doc.wave_settings.CPL_WAVIC} + + export ICERES={doc.ice_settings.ICERES} + export OCNRES={doc.ocn_settings.OCNRES} + # gfs_physics_nml section export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}" From 575b8ff11901c905142b3c9cfc4cfbd51696aab0 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Thu, 18 Jun 2020 08:58:00 -0500 Subject: [PATCH 83/91] put ic type variable into config.fv3ic --- workflow/config/fcst.yaml | 5 ----- workflow/config/fv3ic.yaml | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 27af1d39fa..0bc18b59ec 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -97,11 +97,6 @@ config_fcst: export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} # ocean and ice variables - export CPL_ATMIC={doc.fv3_gfs_settings.CPL_ATMIC} - export CPL_ICEIC={doc.ice_settings.CPL_ICEIC} - export CPL_OCNIC={doc.ocn_settings.CPL_OCNIC} - export CPL_WAVIC={doc.wave_settings.CPL_WAVIC} - export ICERES={doc.ice_settings.ICERES} export OCNRES={doc.ocn_settings.OCNRES} diff --git a/workflow/config/fv3ic.yaml b/workflow/config/fv3ic.yaml index 72c8dd6bfd..61f280b434 100644 --- a/workflow/config/fv3ic.yaml +++ b/workflow/config/fv3ic.yaml @@ -21,6 +21,10 @@ config_fv3ic: export npe_node_fv3ic={doc.partition_common.resources.run_fv3ic[0].mpi_ranks} export ORIGIN_ROOT="{doc.places.BASE_CPLIC}" + export CPL_ATMIC={doc.fv3_gfs_settings.CPL_ATMIC} + export CPL_ICEIC={doc.ice_settings.CPL_ICEIC} + export CPL_OCNIC={doc.ocn_settings.CPL_OCNIC} + export CPL_WAVIC={doc.wave_settings.CPL_WAVIC} echo "END: config.fv3ic" From 3a28b00e37d5796d152c8bfa23b290550de4c1a3 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Thu, 18 Jun 2020 09:14:26 -0500 Subject: [PATCH 84/91] wave init now works on orion --- env/ORION.env | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/env/ORION.env b/env/ORION.env index 6a196fe2a1..b2daccdcf3 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -189,6 +189,11 @@ elif [ $step = "fv3ic" ]; then [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max export APRUN_CHGRES="time" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" ]; then + + export mpmd="--multi-prog" + export CFP_MP="YES" + elif [ $step = "postsnd" ]; then nth_max=$(($npe_node_max / $npe_node_postsnd)) From 2f547a504998a127ffb5beff81722afe47d4cae4 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Thu, 18 Jun 2020 14:46:21 -0500 Subject: [PATCH 85/91] updates to run wave prep for s2s case --- jobs/JWAVE_PREP | 1 + scripts/exwave_prep.sh | 39 ++++++++++++++++---------- workflow/config/wave.yaml | 13 +++++---- workflow/config/waveprep.yaml | 6 +++- workflow/defaults/output_settings.yaml | 2 +- workflow/defaults/wave.yaml | 1 + 6 files changed, 39 insertions(+), 23 deletions(-) diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index f6b3d11c2d..85693baf2f 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -30,6 +30,7 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENTwave=${COMPONENTwave:-${RUN}wave} +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} # Add default errchk = err_chk export errchk=${errchk:-err_chk} diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index d98e8fd8b1..fb88a2ffd2 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -65,15 +65,7 @@ echo ' ' [[ "$LOUD" = YES ]] && set -x -# export MP_PGMMODEL=mpmd -# export MP_CMDFILE=./cmdfile - - if [ "$INDRUN" = 'no' ] - then - FHMAX_WAV=${FHMAX_WAV:-3} - else - FHMAX_WAV=${FHMAX_WAV:-384} - fi + FHMAX_WAV=${FHMAX_WAV:-384} # 0.b Date and time stuff @@ -842,9 +834,14 @@ WINDFLAG="$WAVEWND_FID" ;; 'CPL' ) - WINDFLAG="CPL:${waveesmfGRD}" WNDIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F F T F F F F" + if [ ${waveesmfGRD} ] + then + WINDFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F F T F F F F" + else + WINDFLAG="CPL:native" + fi ;; esac @@ -856,9 +853,14 @@ ICEFLAG="$WAVEICE_FID" ;; 'CPL' ) - ICEFLAG="CPL:${waveesmfGRD}" ICEIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + if [ ${waveesmfGRD} ] + then + ICEFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + else + ICEFLAG="CPL:native" + fi ;; esac @@ -874,9 +876,14 @@ fi ;; 'CPL' ) - CURRFLAG="CPL:${waveesmfGRD}" CURIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + if [ ${waveesmfGRD} ] + then + CURRFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + else + CURRFLAG="CPL:native" + fi ;; esac @@ -918,6 +925,8 @@ -e "s/OUT_BEG/$time_beg_out/g" \ -e "s/OUT_END/$time_end/g" \ -e "s/DTFLD/ $DTFLD_WAV/g" \ + -e "s/FLAGMASKCOMP/ $FLAGMASKCOMP/g" \ + -e "s/FLAGMASKOUT/ $FLAGMASKOUT/g" \ -e "s/GOFILETYPE/ $GOFILETYPE/g" \ -e "s/POFILETYPE/ $POFILETYPE/g" \ -e "s/FIELDS/$FIELDS/g" \ diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 3c27fc5770..4e6df17c6a 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -21,6 +21,7 @@ config_wave: export waveGRD='{doc.wave_settings.waveGRD}' export waveGRDN='{doc.wave_settings.waveGRDN}' # gridnumber for ww3_multi export waveGRDG='10 20 30' # gridgroup for ww3_multi + export USE_WAV_RMP='{doc.wave_settings.USE_WAV_RMP}' #yes/no rmp grid remapping pre-processed coefficients # ESMF input grid export waveesmfGRD='' # input grid @@ -34,9 +35,9 @@ config_wave: if [ "$CDUMP" = "gdas" ] then - export FHMAX_WAV={doc.output_settings.FHMAX_WAV} + export FHMAX_WAV={doc.output_settings.FHMAX_GDAS} #for coupled model, use GDAS else - export FHMAX_WAV={doc.output_settings.FHMAX_WAV_GFS} + export FHMAX_WAV={doc.output_settings.FHMAX_GFS} #for coupled model, use GFS fi export WAVHINDH={doc.wave_settings.WAVHINDH} export FHMIN_WAV={doc.output_settings.FHMIN_WAV} @@ -49,7 +50,7 @@ config_wave: # # the wind update script # gridded and point output rate export DTFLD_WAV=`expr $FHOUT_HF_WAV \* 3600` - export DTPNT_WAV=3600 + export DTPNT_WAV=10800 export FHINCP_WAV=`expr $DTPNT_WAV / 3600` # Grids for input fields @@ -61,7 +62,7 @@ config_wave: export WAVEWND_FID= # Selected output parameters (gridded) - export OUTPARS_WAV=doc.output_settings.OUTPARS_WAV + export OUTPARS_WAV='{doc.output_settings.OUTPARS_WAV}' # Options for point output (switch on/off boundary point output) # export DOIBP_WAV='NO' @@ -91,8 +92,8 @@ config_wave: export FHMAX_WAV_CUR WAVHCYC WAVNCYC export RSTTYPE_WAV='T' # generate second tier of restart files - export DT_1_RST_WAV=10800 # time between restart files, set to DTRST=1 for a single restart file - export DT_2_RST_WAV=43200 # restart stride for checkpointing restart + export DT_1_RST_WAV=0 # time between restart files, set to DTRST=1 for a single restart file + export DT_2_RST_WAV=3024000 # restart stride for checkpointing restart export RSTIOFF_WAV=0 # first restart file offset relative to model start export RUNMEM={doc.wave_settings.RUNMEM} diff --git a/workflow/config/waveprep.yaml b/workflow/config/waveprep.yaml index 97d1d2510e..ea4ebd6ec2 100644 --- a/workflow/config/waveprep.yaml +++ b/workflow/config/waveprep.yaml @@ -20,10 +20,14 @@ config_waveprep: export FUNIPNT="T" # Unified output server type (see ww3_multi.inp in WW3 repo) - export PNTSRV="1" + export IOSRV="1" # # Flag for dedicated output process for unified points export FPNTPROC="T" # # Flag for grids sharing dedicated output processes export FGRDPROC="F" + # Flag for masking computation in two-way nesting + export FLAGMASKCOMP="F" + # Flag for masking at printout time. + export FLAGMASKOUT="F" # echo "END: config.waveprep" diff --git a/workflow/defaults/output_settings.yaml b/workflow/defaults/output_settings.yaml index 1a5657f340..83b3d58d31 100644 --- a/workflow/defaults/output_settings.yaml +++ b/workflow/defaults/output_settings.yaml @@ -45,7 +45,7 @@ wave_output_settings_defaults: &wave_output_settings_defaults FHOUT_WAV: 3 FHMAX_HF_WAV: 120 - FHOUT_HF_WAV: 1 + FHOUT_HF_WAV: 3 FHMAX_WAV_CUR: 48 diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index 01ddc853db..c3e5f3557f 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -11,6 +11,7 @@ wave_defaults: &wave_defaults waveGRD: 'gwes_30m' waveGRDN: '1 2 3' waveGRDG: '10 20 30' + USE_WAV_RMP: 'NO' WAV_CUR_DT: 3 WAV_CUR_HF_DT: 1 WAV_CUR_HF_FH: 72 From 37dc405eabe5610e0dec2b7c5ede6b35879261e2 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 19 Jun 2020 14:51:24 -0500 Subject: [PATCH 86/91] updating forecast job for wave jobs --- scripts/exwave_prep.sh | 4 +-- ush/forecast_postdet.sh | 65 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index fb88a2ffd2..fcd443f2db 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -948,9 +948,9 @@ if [ -f ww3_multi.inp ] then echo " Copying file ww3_multi.${WAV_MOD_TAG}.inp to $COMOUT " - cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.$cycle.inp + cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.${cycle}.inp else - echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.$cycle.inp NOT CREATED, ABORTING" + echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.${cycle}.inp NOT CREATED, ABORTING" err=13;export err;${errchk} fi diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 8bf2ff4c24..52bec6b020 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -502,17 +502,70 @@ $NCP -p $DATA/input.nml $COMOUT/ echo "SUB ${FUNCNAME[0]}: Output data for FV3 copied" } -WW3_in() +WW3_postdet() { - echo "SUB ${FUNCNAME[0]}: Linking input data for WW3" - # soft link commands insert here + echo "SUB ${FUNCNAME[0]}: Linking input data for WW3" + COMPONENTwave=${COMPONENTwave:-${RUN}wave} + + #Link mod_def files for wave grids + array=($WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD) + grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` + for wavGRD in ${grdALL}; do + $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD + done + + #Copy initial condition files: + $NCP -pf $ICSDIR/$CDATE/wav/$wavGRD/*.restart.$wavGRD $DATA/restart.$wavGRD + + for wavGRD in $waveGRD ; do + # Link wave IC for current cycle + # $NLN ${WRDIR}/${sPDY}.${scyc}0000.restart.${wavGRD} $DATA/restart.${wavGRD} + # Link IC for S2S benchmarks: + $NCP -pf $ICSDIR/$CDATE/wav/${PDY}.${cyc}0000.restart.$wavGRD $DATA/restart.$wavGRD + # Link log files for computational grids: + eval $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}${WAV_MEMBER}.log.${wavGRD}.${PDY}${cyc} $DATA/log.${wavGRD} + done + + #link more log files: + eval $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}${WAV_MEMBER}.log.mww3.${PDY}${cyc} $DATA/log.mww3 + + datwave=$ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata + wavprfx=${COMPONENTwave}${WAV_MEMBER} + # Loop for gridded output (uses FHINC) + fhr=$FHMIN_WAV + while [ $fhr -le $FHMAX_WAV ]; do + YMDH=`$NDATE $fhr $CDATE` + YMD=$(echo $YMDH | cut -c1-8) + HMS="$(echo $YMDH | cut -c9-10)0000" + for wavGRD in ${waveGRD} ; do + eval $NLN $datwave/${wavprfx}.out_grd.${wavGRD}.${YMD}.${HMS} $DATA/${YMD}.${HMS}.out_grd.${wavGRD} + done + FHINC=$FHOUT_WAV + #if [ $FHMAX_HF_WAV -gt 0 -a $FHOUT_HF_WAV -gt 0 -a $fhr -lt $FHMAX_HF_WAV ]; then + # FHINC=$FHOUT_HF_WAV + #fi + fhr=$((fhr+FHINC)) + done + # Loop for point output (uses DTPNT) + fhr=$FHMIN_WAV + while [ $fhr -le $FHMAX_WAV ]; do + YMDH=`$NDATE $fhr $CDATE` + YMD=$(echo $YMDH | cut -c1-8) + HMS="$(echo $YMDH | cut -c9-10)0000" + eval $NLN $datwave/${wavprfx}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} $DATA/${YMD}.${HMS}.out_pnt.${waveuoutpGRD} + FHINC=$FHINCP_WAV + fhr=$((fhr+FHINC)) + done + + + } WW3_nml() { - echo "SUB ${FUNCNAME[0]}: Creating name list for WW3" - source $SCRIPTDIR/parsing_namelists_WW3.sh - WW3_namelists + echo "SUB ${FUNCNAME[0]}: Copying input files for WW3" + COMPONENTwave=${COMPONENTwave:-${RUN}wave} + $NCP $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/ww3_multi.${WAV_MOD_TAG}.${cycle}.inp $DATA/ww3_multi.inp } WW3_out() From 0a684d7b9ad6988d62c6f98305883ba77b870720 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 23 Jun 2020 08:12:20 -0500 Subject: [PATCH 87/91] updates for forecast with waves --- jobs/JGLOBAL_FORECAST_MEDCOLD | 2 +- ush/cplvalidate.sh | 1 + ush/forecast_postdet.sh | 5 ++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jobs/JGLOBAL_FORECAST_MEDCOLD b/jobs/JGLOBAL_FORECAST_MEDCOLD index a0826d9c6f..1579fa7aee 100755 --- a/jobs/JGLOBAL_FORECAST_MEDCOLD +++ b/jobs/JGLOBAL_FORECAST_MEDCOLD @@ -9,7 +9,7 @@ date ############################# # Source relevant config files ############################# -configs="base fcst" +configs="base fcst wave" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index f6ffa42ec0..05156c7fdc 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -17,6 +17,7 @@ case $confignamevarfornems in 'blocked_atm_wav') combination=.true..false..false..true..false.;; 'leapfrog_atm_wav')combination=.true..false..false..true..false.;; 'med_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; + 'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1way') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1waywcurr') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice') combination=.true..true..true..false..false.;; diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 52bec6b020..5795286b97 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -509,14 +509,13 @@ WW3_postdet() #Link mod_def files for wave grids array=($WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD) + echo "Wave Grids: $WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD" grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` for wavGRD in ${grdALL}; do - $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD + $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$waveGRD $DATA/mod_def.$waveGRD done #Copy initial condition files: - $NCP -pf $ICSDIR/$CDATE/wav/$wavGRD/*.restart.$wavGRD $DATA/restart.$wavGRD - for wavGRD in $waveGRD ; do # Link wave IC for current cycle # $NLN ${WRDIR}/${sPDY}.${scyc}0000.restart.${wavGRD} $DATA/restart.${wavGRD} From 1ac9d9e74fbb433059df786f879ea397b8d0b0d5 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 26 Jun 2020 09:27:29 -0500 Subject: [PATCH 88/91] at this point the ocean post is now running --- jobs/JGLOBAL_FORECAST | 2 + jobs/JGLOBAL_FORECAST_MEDCOLD | 2 + jobs/rocoto/coupled_ic.sh | 10 ----- jobs/rocoto/ocnpost.sh | 40 +++++++++++++------ modulefiles/module_base.orion | 4 ++ parm/config/config.base | 2 - parm/config/config.base.emc.dyn_coupled | 2 - scripts/run_reg2grb2.sh | 8 +--- scripts/run_regrid.sh | 12 +----- sorc/build_reg2grb2.sh | 5 +++ sorc/link_fv3gfs.sh | 15 ++++--- ush/forecast_postdet.sh | 10 +++-- ush/icepost.ncl | 12 +++--- ush/ocnpost.ncl | 12 +++--- workflow/cases/coupled_free_forecast.yaml | 4 +- .../cases/coupled_free_forecast_wave.yaml | 5 ++- workflow/config/base.yaml | 9 ++--- workflow/config/fcst.yaml | 4 -- workflow/config/ocnpost.yaml | 1 + 19 files changed, 79 insertions(+), 80 deletions(-) diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 824638dcf0..7c8113c7dc 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -62,6 +62,8 @@ if [ $RUN_ENVIR = "nco" ]; then export RSTDIR=${GESROOT:?}/$envir fi +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} ############################################## # Begin JOB SPECIFIC work diff --git a/jobs/JGLOBAL_FORECAST_MEDCOLD b/jobs/JGLOBAL_FORECAST_MEDCOLD index 1579fa7aee..f7b7737d8b 100755 --- a/jobs/JGLOBAL_FORECAST_MEDCOLD +++ b/jobs/JGLOBAL_FORECAST_MEDCOLD @@ -62,6 +62,8 @@ if [ $RUN_ENVIR = "nco" ]; then export RSTDIR=${GESROOT:?}/$envir fi +export COMPONENTwave=${COMPONENTwave:-${RUN}wave} +export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} ############################################## # Begin JOB SPECIFIC work diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index 271f70ebae..8e954db818 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -35,16 +35,6 @@ done status=$? [[ $status -ne 0 ]] && exit $status - -#TODO: make the following configurable variables instead of hardcoded -CPL_ATMIC=CFSR -CPL_OCNIC=CPC3Dvar -CPL_ICEIC=CPC -CPL_WAVIC=CFSR -OCNRES=025 -ICERES=025 -ICERES=${ICERES:-"025"} - # Create ICSDIR if needed [[ ! -d $ICSDIR/$CDATE ]] && mkdir -p $ICSDIR/$CDATE [[ ! -d $ICSDIR/$CDATE/ocn ]] && mkdir -p $ICSDIR/$CDATE/ocn diff --git a/jobs/rocoto/ocnpost.sh b/jobs/rocoto/ocnpost.sh index d4a75e00af..183fd25281 100755 --- a/jobs/rocoto/ocnpost.sh +++ b/jobs/rocoto/ocnpost.sh @@ -108,27 +108,43 @@ for fhr in $fhrlst; do export CDATE=$VDATE cd $DATA if [ $fhr -gt 0 ]; then - export MOM6REGRID=$UGCSsrc/mom6_regrid_025 - $MOM6REGRID/run_regrid.sh + export MOM6REGRID=${MOM6REGRID:-$HOMEgfs} + $MOM6REGRID/scripts/run_regrid.sh status=$? [[ $status -ne 0 ]] && exit $status # Convert the netcdf files to grib2 export executable=$MOM6REGRID/exec/reg2grb2.x - $MOM6REGRID/run_reg2grb2.sh + $MOM6REGRID/scripts/run_reg2grb2.sh + status=$? + [[ $status -ne 0 ]] && exit $status + + + #break up ocn netcdf into multiple files: + if [ -f $COMOUT/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc ]; then + echo "File $COMOUT/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc already exists" + else + $ncks -x -v vo,uo,so,temp $COMOUT/ocn$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc + fi + if [ -f $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc ]; then + echo "File $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc already exists" + else + $ncks -x -v Heat_PmE,LW,LwLatSens,MLD_003,MLD_0125,SSH,SSS,SST,SSU,SSV,SW,cos_rot,ePBL,evap,fprec,frazil,latent,lprec,lrunoff,sensible,sin_rot,speed,taux,tauy,wet_c,wet_u,wet_v $COMOUT/ocn$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc + fi + if [ -f $COMOUT/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc ]; then + echo "File $COMOUT/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc already exists" + else + $ncks -v temp -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc + fi + if [ -f $COMOUT/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc ]; then + echo "File $COMOUT/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc already exists" + else + $ncks -v uo -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc + fi status=$? [[ $status -ne 0 ]] && exit $status fi - #break up ocn netcdf into multiple files: - $ncks -x -v vo,uo,so,temp $COMOUT/ocn_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc - $ncks -x -v Heat_PmE,LW,LwLatSens,MLD_003,MLD_0125,SSH,SSS,SST,SSU,SSV,SW,cos_rot,ePBL,evap,fprec,frazil,latent,lprec,lrunoff,sensible,sin_rot,speed,taux,tauy,wet_c,wet_u,wet_v $COMOUT/ocn_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc - $ncks -v temp -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc - $ncks -v uo -d yh,503 -d xh,-299.92,60.03 $COMOUT/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUT/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc - status=$? - [[ $status -ne 0 ]] && exit $status - - done # Restore CDATE to what is expected export CDATE=$IDATE diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index c053ffa49c..788881a9e1 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -47,6 +47,10 @@ module load netcdf_parallel/4.7.4 module load hdf5_parallel/1.10.6 module load wgrib/2.0.8 module load grib_util/1.2.0 + +#For ocean post: +module load ncl/6.6.2 +module load nco/4.8.1 ## ### load cmake ### diff --git a/parm/config/config.base b/parm/config/config.base index 1fd8ce741c..fd3092c94a 100755 --- a/parm/config/config.base +++ b/parm/config/config.base @@ -208,8 +208,6 @@ export ARCDIR="$NOSCRUB/archive/$PSLOT" export ICSDIR="@ICSDIR@" export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" -# For coupled -export UGCSsrc="/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post" # Commonly defined parameters in JJOBS export envir=${envir:-"prod"} diff --git a/parm/config/config.base.emc.dyn_coupled b/parm/config/config.base.emc.dyn_coupled index 1fd8ce741c..fd3092c94a 100755 --- a/parm/config/config.base.emc.dyn_coupled +++ b/parm/config/config.base.emc.dyn_coupled @@ -208,8 +208,6 @@ export ARCDIR="$NOSCRUB/archive/$PSLOT" export ICSDIR="@ICSDIR@" export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" -# For coupled -export UGCSsrc="/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post" # Commonly defined parameters in JJOBS export envir=${envir:-"prod"} diff --git a/scripts/run_reg2grb2.sh b/scripts/run_reg2grb2.sh index 2ee0349b3d..ffe0a0a57d 100755 --- a/scripts/run_reg2grb2.sh +++ b/scripts/run_reg2grb2.sh @@ -1,15 +1,11 @@ #!/bin/bash set -x -module load grib_util/1.1.1 -module list +#requires grib_util module MOM6REGRID=${MOM6REGRID:-$HOMEgfs} export mask_file=$MOM6REGRID/fix/fix_reg2grb2/mask.0p25x0p25.grb2 -#export icefile=/climate/save/emc.climpara/Xingren/regrid/out/icer2015040106.01.2015040100_0p5x0p5_CICE.nc -#export ocnfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnr2015040106.01.2015040100_0p5x0p5_MOM6.nc -#export outfile=/climate/save/emc.climpara/Xingren/regrid/out/ocnh2015040106.01.2015040100.grb2 -# + # offline testing: #export DATA= #export icefile=$DATA/DATA0p5/icer2012010106.01.2012010100_0p5x0p5.nc diff --git a/scripts/run_regrid.sh b/scripts/run_regrid.sh index 11f62af223..e99913d835 100755 --- a/scripts/run_regrid.sh +++ b/scripts/run_regrid.sh @@ -12,23 +12,13 @@ export FHR=$fhr export DATA=$DATA export OCNFIXDIR=$OCNFIXDIR -#export IDATE=2015040100 # From caller/env -#export ENSMEM=01 # From caller/env -#export NCARG_ROOT=$ROOT_DIR/ncl # From module -#export FHR=$fhr - ###### DO NOT MODIFY BELOW UNLESS YOU KNOW WHAT YOU ARE DOING ####### -module load ncl/6.5.0 +#Need NCL module to be loaded: echo $NCARG_ROOT export NCL=$NCARG_ROOT/bin/ncl -#### ls -alrt -# executed from DATA dir -#$NCL $EXEC_DIR/regrid_MOM6.ncl > regrid_MOM6.log 2>&1 -#$NCL $EXEC_DIR/regrid_CICE.ncl > regrid_CICE.log 2>&1 - $NCL $USH_DIR/icepost.ncl > regrid_CICE.log 2>&1 $NCL $USH_DIR/ocnpost.ncl > regrid_MOM6.log 2>&1 ##################################################################### diff --git a/sorc/build_reg2grb2.sh b/sorc/build_reg2grb2.sh index 60d1686dfa..16d627d6fd 100755 --- a/sorc/build_reg2grb2.sh +++ b/sorc/build_reg2grb2.sh @@ -1,6 +1,11 @@ #! /usr/bin/env bash set -x +# Check final exec folder exists +if [ ! -d "../exec" ]; then + mkdir ../exec +fi + source ./machine-setup.sh > /dev/null 2>&1 source ../modulefiles/modulefile.reg2grb2.$target diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 1cf2eb4878..59c5198ea3 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -336,19 +336,18 @@ fi #--choose dynamic config.base for EMC installation #--choose static config.base for NCO installation cd $pwd/../parm/config -[[ -s config.base ]] && rm -f config.base -if [ $RUN_ENVIR = nco ] ; then - cp -p config.base.nco.static config.base -else - cp -p config.base.emc.dyn config.base -fi +#[[ -s config.base ]] && rm -f config.base +#if [ $RUN_ENVIR = nco ] ; then +# cp -p config.base.nco.static config.base +#else +# cp -p config.base.emc.dyn config.base +#fi #------------------------------ if [ $model = "coupled" ] ; then rm -f config.base - cp -p config.base.emc.dyn_coupled config.base + #cp -p config.base.emc.dyn_coupled config.base cd $pwd/../fix # Add fixed files needed for coupled ufs-s2s-model - $LINK $FIX_DIR/fix_ocnice . $LINK $FIX_DIR/fix_cice5 . $LINK $FIX_DIR/fix_mom6 . $LINK $FIX_DIR/fix_fv3grid . diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 5795286b97..70ad3117a9 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -512,7 +512,7 @@ WW3_postdet() echo "Wave Grids: $WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD" grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` for wavGRD in ${grdALL}; do - $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$waveGRD $DATA/mod_def.$waveGRD + $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD done #Copy initial condition files: @@ -586,9 +586,11 @@ MOM6_postdet() $NCP -pf $FIXmom/$OCNRES/* $DATA/INPUT/ # Copy MOM6 input file - $NCP -pf $HOMEgfs/parm/mom6/MOM_input_$OCNRES $DATA/INPUT/MOM_input - - #TODO: if cplwav, copy MOM_input_$OCNRES_wav + if [ $cplwav = ".true." ] ; then + $NCP -pf $HOMEgfs/parm/mom6/MOM_input_${OCNRES}_wav $DATA/INPUT/MOM_input + else + $NCP -pf $HOMEgfs/parm/mom6/MOM_input_$OCNRES $DATA/INPUT/MOM_input + fi #TODO: update to make MOM_input configurable # Copy coupled grid_spec diff --git a/ush/icepost.ncl b/ush/icepost.ncl index 5bf07b290e..9f831d1bff 100644 --- a/ush/icepost.ncl +++ b/ush/icepost.ncl @@ -111,7 +111,7 @@ begin outgrid = dstgrds(jj) ; regrid a field to obtain the output xy dimensions - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" tt = ESMF_regrid_with_weights(angleT,wgtsfile,False) tt!0 = "lat" tt!1 = "lon" @@ -132,7 +132,7 @@ begin ; have crept into the field. remapped model fields are then ; masked with this interpolation mask - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" rgmask2d = ESMF_regrid_with_weights(mask2d, wgtsfile,False) if(output_masks)then @@ -271,7 +271,7 @@ begin ; regrid to dsttype+dstgrd with method ;print("remapping "+varname+" to grid "+dsttype+dstgrds(jj)) - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" rgtt = ESMF_regrid_with_weights(icevar,wgtsfile,False) rgtt = where(ismissing(rgmask2d),icevar@_FillValue,rgtt) @@ -309,7 +309,7 @@ begin vecfld = where(ismissing(uvel),0.0,uvel) copy_VarAtts(uvel,vecfld) ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") - wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" ut = ESMF_regrid_with_weights(vecfld,wgtsfile,False) delete(ut@remap) @@ -318,7 +318,7 @@ begin vecfld = where(ismissing(vvel),0.0,vvel) copy_VarAtts(vvel,vecfld) ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") - wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" vt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) delete(vt@remap) @@ -346,7 +346,7 @@ begin vecfld = vecpairs[n] ; regrid to dsttype+dstgrd with method ;print("remapping "+vecnames(n)+" to grid "+dsttype+dstgrds(jj)) - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" rgtt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) rgtt = where(ismissing(rgmask2d),vecfld@_FillValue,rgtt) diff --git a/ush/ocnpost.ncl b/ush/ocnpost.ncl index 5084a849bd..9bd82ef856 100644 --- a/ush/ocnpost.ncl +++ b/ush/ocnpost.ncl @@ -253,7 +253,7 @@ begin outgrid = dstgrds(jj) ; regrid a field to obtain the output xy dimensions - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" tt = ESMF_regrid_with_weights(sinrot,wgtsfile,False) tt!0 = "lat" tt!1 = "lon" @@ -275,7 +275,7 @@ begin ; have crept into the field. remapped model fields are then ; masked with this interpolation mask - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+".bilinear.nc" rgmask2d = ESMF_regrid_with_weights(mask2d, wgtsfile,False) rgmask3d = ESMF_regrid_with_weights(mask3d, wgtsfile,False) @@ -448,7 +448,7 @@ begin ; regrid to dsttype+dstgrd with method ;print("remapping "+varname+" to grid "+dsttype+dstgrds(jj)) - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+varmeth+".nc" rgtt = ESMF_regrid_with_weights(ocnvar,wgtsfile,False) if(vardims .eq. "2")then @@ -493,7 +493,7 @@ begin vecfld = where(ismissing(uvel),0.0,uvel) copy_VarAtts(uvel,vecfld) ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") - wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" ut = ESMF_regrid_with_weights(vecfld,wgtsfile,False) delete(ut@remap) @@ -502,7 +502,7 @@ begin vecfld = where(ismissing(vvel),0.0,vvel) copy_VarAtts(vvel,vecfld) ;print("unstagger "+vecnames(n)+" from "+vecgrids(n)+" to Ct") - wgtsfile = nemsrc+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" + wgtsfile = nemsrc+"/"+"tripole.mx025."+vecgrids(n)+".to.Ct.bilinear.nc" vt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) delete(vt@remap) @@ -534,7 +534,7 @@ begin vecfld = vecpairs[n] ; regrid to dsttype+dstgrd with method ;print("remapping "+vecnames(n)+" to grid "+dsttype+dstgrds(jj)) - wgtsfile = nemsrc+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" + wgtsfile = nemsrc+"/"+"tripole.mx025.Ct.to."+dsttype+dstgrds(jj)+"."+vecmeth(n)+".nc" rgtt = ESMF_regrid_with_weights(vecfld,wgtsfile,False) if(vecdims(n) .eq. "2")then diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 1e62c51866..f0af5bf0ab 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -21,7 +21,7 @@ case: OCN_INTERVAL: 24 FHOUT_GFS: 6 FHMIN_GFS: 0 - FHMAX_GFS: 840 + FHMAX_GFS: 48 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: -1 @@ -42,8 +42,6 @@ case: WGRP: 1 WGRP_NTASKS: 24 WRTIOBUF: "32M" - OCNPETS: 120 - ICEPETS: 48 cdmbgwd: "1.0,1.2" ocn_settings: diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index 2bdb8ae1ff..da8a054fb1 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -23,7 +23,7 @@ case: OCN_INTERVAL: 24 FHOUT_GFS: 6 FHMIN_GFS: 0 - FHMAX_GFS: 120 + FHMAX_GFS: 48 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: -1 @@ -52,6 +52,9 @@ case: ice_settings: ICEPETS: 48 + wave_settings: + WAVPETS: 40 + post: downset: 2 GOESF: no diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index 5ba4e37a66..049c2f95b6 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -61,7 +61,7 @@ config_base: export FIXcice=$HOMEgfs/fix/fix_cice5 export FIXmom=$HOMEgfs/fix/fix_mom6 export FIXgrid=$HOMEgfs/fix/fix_fv3grid - export OCNFIXDIR=$HOMEgfs/fix/fix_ocnice + export OCNFIXDIR=$HOMEgfs/fix/fix_reg2grb2 # GLOBAL static environment parameters export DMPDIR="{doc.places.DMPDIR}" @@ -113,9 +113,6 @@ config_base: export CHGRP_CMD="{doc.platform.CHGRP_RSTPROD_COMMAND}" export NEMSIOGET="$HOMEgfs/exec/nemsio_get" - # For coupled - export UGCSsrc="/scratch2/NCEPDEV/climate/Bin.Li/S2S/fix/ocean_ice_post" - # Machine environment, jobs, and other utility scripts export BASE_ENV="$HOMEgfs/env" export BASE_JOB="$HOMEgfs/jobs/rocoto" @@ -165,7 +162,9 @@ config_base: export LEVS={doc.fv3_gfs_settings.LEVS} export CASE="{doc.fv3_gfs_settings.CASE}" export CASE_ENKF="{doc.fv3_enkf_settings.CASE}" - + export ICERES={doc.ice_settings.ICERES} + export OCNRES={doc.ocn_settings.OCNRES} + # Surface cycle update frequency if [ "$CDUMP" == "gdas" ] ; then export FHCYC={doc.fv3_enkf_settings.FHCYC_GDAS} diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 0bc18b59ec..4265ffc74a 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -96,10 +96,6 @@ config_fcst: export do_sat_adj="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.do_sat_adjust)}" export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat} - # ocean and ice variables - export ICERES={doc.ice_settings.ICERES} - export OCNRES={doc.ocn_settings.OCNRES} - # gfs_physics_nml section export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}" diff --git a/workflow/config/ocnpost.yaml b/workflow/config/ocnpost.yaml index cd37e8b691..2995d1c1b5 100644 --- a/workflow/config/ocnpost.yaml +++ b/workflow/config/ocnpost.yaml @@ -20,5 +20,6 @@ config_ocnpost: # No. of concurrent post jobs [0 implies sequential] export NPOSTGRP={doc.ocnpost.NPOSTGRP} + export ncks="{doc.places.ncks}" echo "END: config.ocnpost" From d5de2c73818c4a6cc4f64aa3b5907666e24e1e14 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 26 Jun 2020 14:43:51 -0500 Subject: [PATCH 89/91] fix nems.configure for cold start --- ush/forecast_postdet.sh | 2 +- ush/nems.configure.medcold_atm_ocn_ice_wav.IN | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 70ad3117a9..48ff14a7f7 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -512,7 +512,7 @@ WW3_postdet() echo "Wave Grids: $WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD" grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` for wavGRD in ${grdALL}; do - $NLN $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD + $NCP $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/rundata/${COMPONENTwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD done #Copy initial condition files: diff --git a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN index bd426d6eb5..12eaa9cc23 100644 --- a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN +++ b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN @@ -61,10 +61,10 @@ WAV_attributes:: # Run Sequence # runSeq:: - @@[coupling_interval_slow_sec] + @@[CPL_SLOW] OCN -> WAV WAV -> OCN :srcMaskValues=1 - @@[coupling_interval_fast_sec] + @@[CPL_FAST] MED MedPhase_prep_atm MED -> ATM :remapMethod=redist WAV -> ATM :srcMaskValues=1 From 65c9a8751b87021f444ceefc9e9b4b5aa5b58130 Mon Sep 17 00:00:00 2001 From: "jian.kuang" Date: Mon, 29 Jun 2020 14:33:53 -0500 Subject: [PATCH 90/91] updated wave-realted scripts to match gfsv16 branch updated environment files env/ORION.env updated configuration system --- env/ORION.env | 9 +++++++++ modulefiles/module_base.orion | 37 +++++++++++++++-------------------- scripts/exwave_init.sh | 4 ++-- scripts/exwave_prep.sh | 4 ++-- ush/cplvalidate.sh | 1 + workflow/defaults/wave.yaml | 4 ++-- 6 files changed, 32 insertions(+), 27 deletions(-) diff --git a/env/ORION.env b/env/ORION.env index 6a196fe2a1..48284f4bc9 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -42,11 +42,20 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export BACK=${BACK:-"YES"} export sys_tp="ORION" +elif [ $step = "waveinit" -o $step = "waveprep" ]; then + + export mpmd="--multi-prog" + export CFP_MP="YES" + elif [ $step = "anal" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO + export USE_CFP=${USE_CFP:-"YES"} + export CFP_MP="YES" # For analdiag with SLURM + export APRUNCFP="$launcher" + nth_max=$(($npe_node_max / $npe_node_anal)) export NTHREADS_GSI=${nth_anal:-$nth_max} diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index c053ffa49c..41c2646d8e 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -6,33 +6,28 @@ ## load contrib environment ## load slurm utils (arbitrary.pl layout.pl) ## -module load contrib noaatools - ## ## load programming environment ## this typically includes compiler, MPI and job scheduler ## -module load intel/2018 -module load impi/2018 +module load intel/2018.4 +module load impi/2018.4 +module load wgrib/2.0.8 +module load nco/4.8.1 + +module load gempak/7.5.1 ## ## NCEP libraries (temporary version to match the CCPP requirements) ## module use /apps/contrib/NCEPLIBS/orion/modulefiles -module load bacio/2.0.3 -module load ip/3.0.2 -module load nemsio/2.2.4 -module load sp/2.0.3 -module load w3emc/2.4.0 -module load w3nco/2.0.7 -module load g2/3.1.1 +module load grib_util/1.2.0 +module load prod_util/1.2.0 module load g2tmpl/1.6.0 module load crtm/2.3.0 -module load jasper/1.900.2 -module load png/1.2.44 -module load z/1.2.6 +module load netcdf_parallel/4.7.4 +module load hdf5_parallel/1.10.6 -module load prod_util/1.2.0 ## ## load ESMF library for above compiler / MPI combination ## use pre-compiled EMSF library for above compiler / MPI combination @@ -42,13 +37,13 @@ module load netcdfp/4.7.4 module load esmflocal/8.0.0.para module load post-intel-sandybridge/8.0.5 +module load contrib +module load rocoto/1.3.1 +module load slurm/19.05.3-2 + +# Python +module load python/3.7.5 -module load netcdf_parallel/4.7.4 -module load hdf5_parallel/1.10.6 -module load wgrib/2.0.8 -module load grib_util/1.2.0 -## -### load cmake ### module load cmake/3.15.4 setenv CMAKE_C_COMPILER mpiicc diff --git a/scripts/exwave_init.sh b/scripts/exwave_init.sh index 848222d5ed..714ed7880b 100755 --- a/scripts/exwave_init.sh +++ b/scripts/exwave_init.sh @@ -14,6 +14,7 @@ # Script history log: # 2019-05-06 J-Henrique Alves First Version. # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # @@ -230,7 +231,6 @@ echo ' ' [[ "$LOUD" = YES ]] && set -x - msg="$job completed normally" - postmsg "$jlogfile" "$msg" + exit $err # End of MWW3 init config script ------------------------------------------- # diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 98711b574f..d687600b1a 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -30,6 +30,7 @@ # Nov2012 JHAlves - Transitioning to WCOSS # # Apr2019 JHAlves - Transitioning to GEFS workflow # # Nov2019 JHAlves - Merging wave scripts to global workflow # +# Jun2020 JHAlves - Porting to R&D machine Hera # # # # WAV_MOD_ID and WAV_MOD_TAG replace modID. WAV_MOD_TAG # # is used for ensemble-specific I/O. For deterministic # @@ -1019,7 +1020,6 @@ echo ' ' [[ "$LOUD" = YES ]] && set -x - msg="$job completed normally" - postmsg "$jlogfile" "$msg" + exit $err # End of MWW3 preprocessor script ------------------------------------------- # diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index f6ffa42ec0..b0c2d14b2a 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -19,6 +19,7 @@ case $confignamevarfornems in 'med_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1way') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1waywcurr') combination=.true..true..true..true..false.;; + 'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice') combination=.true..true..true..false..false.;; *) echo "SUB cplvalidate: Combination not supported" exit ;; diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index e77f6bb6a5..d06bcfc732 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -16,5 +16,5 @@ wave_defaults: &wave_defaults WAV_CUR_HF_DT: 1 WAV_CUR_HF_FH: 72 WAV_CUR_CDO_SMOOTH: NO - wavempexec: "mpirun -n" - wave_mpmd: "cfp" + wavempexec: "srun --export=ALL" + wave_mpmd: "--multi-prog" From eb745e34de7e6f29198306739606626151779c91 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Fri, 17 Jul 2020 16:40:30 -0400 Subject: [PATCH 91/91] S2s prototype4 (#2) * add waves to jglobal forecast config * updates - everything but wave post seems to run now, part of wave post does updating model to latest tag * change for lmod -> lmod/lmod on orion updated README * fixing syntax error in JWAVE_PREP job for variables that are not actively being used * adding cycle definition to wave post job * cleanup from duplications --- README.md | 7 ++++++ env/ORION.env | 9 -------- jobs/JGLOBAL_FORECAST | 2 +- jobs/JWAVE_POST_SBS | 5 ++++- jobs/JWAVE_PREP | 6 ++--- modulefiles/module-setup.sh.inc | 2 +- modulefiles/module_base.orion | 40 +++++++++++++++++++++------------ scripts/exwave_prep.sh | 1 - sorc/build_fv3_coupled.sh | 1 - sorc/checkout.sh | 2 +- sorc/link_fv3gfs.sh | 2 +- 11 files changed, 44 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 0185c0ae7e..e3a33c3086 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,13 @@ module load rocoto rocotorun -w workflow.xml -d workflow.db ``` +## Using crons on Orion + +On orion, you will need to update the path to rocotorun in the autogenerated workflow.crontab to be +/apps/contrib/rocoto/1.3.1/bin/rocotorun + +Also note, on orion you need to be on login node 1 for cronjobs. + ## Resource handling There are two ways of changing resource settings (cpu count, time limits, threads) for a job that has already been defined in the workflow. diff --git a/env/ORION.env b/env/ORION.env index 8dab14bb73..b2daccdcf3 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -42,20 +42,11 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export BACK=${BACK:-"YES"} export sys_tp="ORION" -elif [ $step = "waveinit" -o $step = "waveprep" ]; then - - export mpmd="--multi-prog" - export CFP_MP="YES" - elif [ $step = "anal" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO - export USE_CFP=${USE_CFP:-"YES"} - export CFP_MP="YES" # For analdiag with SLURM - export APRUNCFP="$launcher" - nth_max=$(($npe_node_max / $npe_node_anal)) export NTHREADS_GSI=${nth_anal:-$nth_max} diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 7c8113c7dc..e9ad054024 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -9,7 +9,7 @@ date ############################# # Source relevant config files ############################# -configs="base fcst" +configs="base fcst wave" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do diff --git a/jobs/JWAVE_POST_SBS b/jobs/JWAVE_POST_SBS index 51d658c0d1..66676b0eae 100755 --- a/jobs/JWAVE_POST_SBS +++ b/jobs/JWAVE_POST_SBS @@ -7,7 +7,7 @@ set -x -e ############################# # Source relevant config files ############################# -configs="base wave wavepostsbs" +configs="base wave" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do @@ -36,6 +36,9 @@ export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + # Set PDY setpdy.sh sh ./PDY diff --git a/jobs/JWAVE_PREP b/jobs/JWAVE_PREP index 85693baf2f..b1a657bcc2 100755 --- a/jobs/JWAVE_PREP +++ b/jobs/JWAVE_PREP @@ -50,9 +50,9 @@ export RPDY=$PDY export pgmout=OUTPUT.$$ -export COMINice=$((COMINice:-$COMROOTp2/omb/prod)) -export COMINwnd=$((COMINwnd:-$COMROOT/gfs/prod)) -export COMIN_WAV_CUR=$((COMIN_WAV_CUR:-$COMROOTp2/rtofs/prod)) +export COMINice=${COMINice:-${COMROOTp2}/omb/prod} +export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} export COMINwave=${COMINwave:-${ROTDIR:?}} export COMOUTwave=${COMOUTwave:-${ROTDIR:?}} diff --git a/modulefiles/module-setup.sh.inc b/modulefiles/module-setup.sh.inc index 9d97102636..75c7249ea4 100644 --- a/modulefiles/module-setup.sh.inc +++ b/modulefiles/module-setup.sh.inc @@ -31,7 +31,7 @@ elif [[ -d /scratch1 ]] ; then elif [[ -d /work ]] ; then # We are on MSU Orion if ( ! eval module help > /dev/null 2>&1 ) ; then - source /apps/lmod/init/$__ms_shell + source /apps/lmod/lmod/init/$__ms_shell fi module purge elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 41c2646d8e..b1d0ef4aa0 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -6,28 +6,37 @@ ## load contrib environment ## load slurm utils (arbitrary.pl layout.pl) ## +module load contrib noaatools + ## ## load programming environment ## this typically includes compiler, MPI and job scheduler ## -module load intel/2018.4 -module load impi/2018.4 -module load wgrib/2.0.8 -module load nco/4.8.1 +module load intel/2018 +module load impi/2018 -module load gempak/7.5.1 +#For ocean post: +module load ncl/6.6.2 +module load nco/4.8.1 ## ## NCEP libraries (temporary version to match the CCPP requirements) ## module use /apps/contrib/NCEPLIBS/orion/modulefiles -module load grib_util/1.2.0 -module load prod_util/1.2.0 +module load bacio/2.0.3 +module load ip/3.0.2 +module load nemsio/2.2.4 +module load sp/2.0.3 +module load w3emc/2.4.0 +module load w3nco/2.0.7 +module load g2/3.1.1 module load g2tmpl/1.6.0 module load crtm/2.3.0 -module load netcdf_parallel/4.7.4 -module load hdf5_parallel/1.10.6 +module load jasper/1.900.2 +module load png/1.2.44 +module load z/1.2.6 +module load prod_util/1.2.0 ## ## load ESMF library for above compiler / MPI combination ## use pre-compiled EMSF library for above compiler / MPI combination @@ -37,13 +46,16 @@ module load netcdfp/4.7.4 module load esmflocal/8.0.0.para module load post-intel-sandybridge/8.0.5 -module load contrib -module load rocoto/1.3.1 -module load slurm/19.05.3-2 -# Python -module load python/3.7.5 +module load netcdf_parallel/4.7.4 +module load hdf5_parallel/1.10.6 +module load wgrib/2.0.8 +module load grib_util/1.2.0 + +module load slurm/19.05.3-2 +## +### load cmake ### module load cmake/3.15.4 setenv CMAKE_C_COMPILER mpiicc diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 4e93a7bf13..fcd443f2db 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -30,7 +30,6 @@ # Nov2012 JHAlves - Transitioning to WCOSS # # Apr2019 JHAlves - Transitioning to GEFS workflow # # Nov2019 JHAlves - Merging wave scripts to global workflow # -# Jun2020 JHAlves - Porting to R&D machine Hera # # # # WAV_MOD_ID and WAV_MOD_TAG replace modID. WAV_MOD_TAG # # is used for ensemble-specific I/O. For deterministic # diff --git a/sorc/build_fv3_coupled.sh b/sorc/build_fv3_coupled.sh index b7ea3cc038..88cf75fe65 100755 --- a/sorc/build_fv3_coupled.sh +++ b/sorc/build_fv3_coupled.sh @@ -16,7 +16,6 @@ if [ ! -d "../exec" ]; then mkdir ../exec fi -if [ $target = theia ]; then target=theia.intel ; fi cd fv3_coupled.fd/NEMS make -j 8 app=coupledFV3_CCPP_MOM6_CICE_WW3 build diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 70ac21bdd7..3a6707ba33 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -16,7 +16,7 @@ rm -f ${topdir}/checkout-fv3_coupled.log if [[ ! -d fv3_coupled.fd ]] ; then git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 cd fv3_coupled.fd - git checkout s2s_prototype4.0 + git checkout ufss2s_cmeps_v0.7 git submodule update --init --recursive cd ${topdir} else diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 59c5198ea3..643a5092a0 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -344,7 +344,7 @@ cd $pwd/../parm/config #fi #------------------------------ if [ $model = "coupled" ] ; then - rm -f config.base + #rm -f config.base #cp -p config.base.emc.dyn_coupled config.base cd $pwd/../fix # Add fixed files needed for coupled ufs-s2s-model