diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 index 668853dca5..77c76bbb82 100644 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 +++ b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 @@ -5,11 +5,15 @@ 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 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + + export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera index cb595ae67a..9acce54639 100644 --- a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera +++ b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera @@ -1,12 +1,14 @@ #%Module##################################################### ## enkf_chgres_recenter component - hera ############################################################# -module load netcdf/4.6.1 module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles module load bacio/2.0.2 module load w3nco/2.0.6 module load ip/3.0.1 module load sp/2.0.2 +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 index 221d0e2d76..65970aa74e 100644 --- a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 +++ b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 @@ -5,10 +5,15 @@ module load ips/18.0.1.163 module load impi/18.0.1 -module load NetCDF/4.5.0 +#module load NetCDF/4.5.0 module load bacio/2.0.2 module load w3nco/2.0.6 module load ip/3.0.1 module load sp/2.0.2 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + + export FC=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.hera b/modulefiles/fv3gfs/gaussian_sfcanl.hera index 01150b4e75..faa9921f48 100644 --- a/modulefiles/fv3gfs/gaussian_sfcanl.hera +++ b/modulefiles/fv3gfs/gaussian_sfcanl.hera @@ -2,14 +2,14 @@ ## 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 +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + export NETCDF_INCLUDE="-I${NETCDF}/include" export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 index e16660ae5e..b5794e5ebe 100644 --- a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 +++ b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 @@ -8,11 +8,13 @@ set ver v15.0.0 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 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + export FCOMP=ifort diff --git a/modulefiles/module_base.hera b/modulefiles/module_base.hera index 7ff7516382..ce334f07c9 100644 --- a/modulefiles/module_base.hera +++ b/modulefiles/module_base.hera @@ -7,12 +7,14 @@ 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 netcdf/4.7.0 module load nco/4.7.0 -module load hdf5/1.10.5 module load gempak/7.4.2 +module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 +module load esmf/8.0.0_ParallelNetCDF + #Load from official NCEPLIBS module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles module load g2tmpl/1.6.0 @@ -20,9 +22,6 @@ module load grib_util/1.1.1 module load crtm/2.2.6 module load prod_util/1.1.0 -module use -a /scratch1/NCEPDEV/nems/emc.nemspara/soft/modulefiles -module load esmf/8.0.0bs48 - # python module use -a /contrib/modulefiles module load anaconda/2.3.0 diff --git a/modulefiles/module_base.wcoss_dell_p3 b/modulefiles/module_base.wcoss_dell_p3 index f8bb45dcb7..b9368b5f8a 100644 --- a/modulefiles/module_base.wcoss_dell_p3 +++ b/modulefiles/module_base.wcoss_dell_p3 @@ -17,19 +17,22 @@ module unload grib_util/1.0.6 module load grib_util/1.1.0 module load NCO/4.7.0 -module load HDF5-serial/1.10.1 -module load NetCDF/4.5.0 module load CFP/2.0.1 setenv USE_CFP YES - -# modules used by vrfy module load pm5 +#module load HDF5-serial/1.10.1 +#module load NetCDF/4.5.0 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 +module load esmf/8.0.0_ParallelNetCDF + module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ module load gempak/7.3.1 -module use /gpfs/dell2/emc/modeling/noscrub/emc.nemspara/soft/modulefiles -module load esmf/8.0.0bs48 +#module use /gpfs/dell2/emc/modeling/noscrub/emc.nemspara/soft/modulefiles +#module load esmf/8.0.0bs48 # python module load python/3.6.3 diff --git a/parm/config/README.iau b/parm/config/README.iau deleted file mode 100644 index 95b83a6e81..0000000000 --- a/parm/config/README.iau +++ /dev/null @@ -1,16 +0,0 @@ -config*iau: turns on IAU, netcdf diag files, linearized H for EnKF, - LETKF with model space localization, analyses computed - at beginning, middle, end of window, - EnKF for both GFS and GDAS cycles. - SKEB turned on. - -Notes: - -in config.vrfy.iau: -export VRFYRAD="NO" # Radiance data assimilation monitoring -export VRFYOZN="NO" # Ozone data assimilation monitoring -since netcdf diag files not supported yet. - - -Use feature/iau GSI branch (or EXP-locfix-io to get localization bug fixes -and EnKF updates). Fix files for model space localization in fix_l127 branch. diff --git a/parm/config/config.anal b/parm/config/config.anal index 37ea1d880d..aec0edb1b0 100755 --- a/parm/config/config.anal +++ b/parm/config/config.anal @@ -21,7 +21,21 @@ fi export ANALYSISSH="$HOMEgsi/scripts/exglobal_analysis_fv3gfs.sh.ecf" export npe_gsi=$npe_anal -export LEVS_ENKF=$((LEVS-1)) + +# Set parameters specific to L127 +if [ $LEVS = "128" ]; then + export GRIDOPTS="nlayers(63)=1,nlayers(64)=1," + export SETUP="gpstop=55,nsig_ext=56,$SETUP" +fi + +# Set namelist option for LETKF +export lobsdiag_forenkf=".false." # anal does not need to write out jacobians + # set to .true. in config.eobs and config.eupd + +if [ $OUTPUT_FILE = "nemsio" ]; then + export DO_CALC_INCREMENT="YES" + export DO_CALC_ANALYSIS="NO" +fi # Do not process the following datasets export GSNDBF=${GSNDBF:-/dev/null} @@ -29,9 +43,6 @@ export AMSREBF=${AMSREBF:-/dev/null} export SSMITBF=${SSMITBF:-/dev/null} export AMSR2BF=${AMSR2BF:-/dev/null} -# Set directory and structure for COMIN_OBS -export COMIN_OBS="$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}" - # Set CONVINFO and SATINFO for retrospective parallels if [ $REALTIME = "NO" ]; then @@ -53,7 +64,11 @@ if [ $REALTIME = "NO" ]; then fi # Set OZINFO - if [[ "$CDATE" -ge "2018110700" ]]; then + if [[ "$CDATE" -ge "2020011806" ]]; then + export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2020011806 + elif [[ "$CDATE" -ge "20200116000" ]]; then + export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2020011600 + elif [[ "$CDATE" -ge "2018110700" ]]; then export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2018110700 elif [[ "$CDATE" -ge "2015110500" ]]; then export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2015110500 @@ -93,9 +108,25 @@ if [ $REALTIME = "NO" ]; then fi fi -if [ $LEVS = "128" ]; then - export GRIDOPTS="nlayers(63)=1,nlayers(64)=1," - export SETUP="gpstop=55,nsig_ext=56,$SETUP" +# Use experimental dumps in GFS v16 parallels +export ABIBF="/dev/null" +if [[ "$CDATE" -ge "2019022800" ]] ; then + export ABIBF="$DMPDIR/${CDUMP}x.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsrcsr.tm00.bufr_d" + if [[ "$CDATE" -ge "2019111000" ]]; then + export ABIBF="$DMPDIR/${CDUMP}y.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsrcsr.tm00.bufr_d" + fi +fi + +export AHIBF="/dev/null" +if [[ "$CDATE" -ge "2019042300" ]]; then + export AHIBF="$DMPDIR/${CDUMP}x.${PDY}/${cyc}/${CDUMP}.t${cyc}z.ahicsr.tm00.bufr_d" fi + +# Turn off assmilation of OMPS during period of bad data +if [[ "$CDATE" -ge "2020011600" && "$CDATE" -lt "2020011806" ]]; then + export OZINFO=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/para_fv3gfs/v16rt2/global_ozinfo.txt +fi + + echo "END: config.anal" diff --git a/parm/config/config.anal.iau b/parm/config/config.anal.iau deleted file mode 100755 index 6525d1897a..0000000000 --- a/parm/config/config.anal.iau +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/ksh -x - -########## config.anal ########## -# Analysis specific - -echo "BEGIN: config.anal" - -# Get task specific resources -. $EXPDIR/config.resources anal - -if [ $DONST = "YES" ]; then - . $EXPDIR/config.nsst -fi - -if [[ "$CDUMP" = "gfs" ]] ; then - export USE_RADSTAT="NO" # This can be only used when bias correction is not-zero. - export GENDIAG="NO" - export SETUP='diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false.,write_diag(3)=.false.,' - export DIAG_TARBALL="NO" -fi - -export ANALYSISSH="$HOMEgsi/scripts/exglobal_analysis_fv3gfs.sh.ecf" -export npe_gsi=$npe_anal - -# Do not process the following datasets -export GSNDBF=${GSNDBF:-/dev/null} -export AMSREBF=${AMSREBF:-/dev/null} -export SSMITBF=${SSMITBF:-/dev/null} -export AMSR2BF=${AMSR2BF:-/dev/null} - -# Set CONVINFO and SATINFO for retrospective parallels -if [ $REALTIME = "NO" ]; then - - CDATE=${CDATE:-9999} # provide default in case CDATE undefined - -# Set CONVINFO - if [[ "$CDATE" -ge "2018022818" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2018022818 - elif [[ "$CDATE" -ge "2018010512" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2018010512 - elif [[ "$CDATE" -ge "2017071912" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2017071912 - elif [[ "$CDATE" -ge "2016031512" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2016031512 - elif [[ "$CDATE" -ge "2014041400" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2014041400 - else - echo "WARNING: No CONVINFO for $CDATE" - fi - -# Set OZINFO - if [[ "$CDATE" -ge "2018110700" ]]; then - export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2018110700 - elif [[ "$CDATE" -ge "2015110500" ]]; then - export OZINFO=$FIXgsi/fv3_historical/global_ozinfo.txt.2015110500 - else - echo "WARNING: No OZINFO for $CDATE" - fi - -# Set SATINFO - if [[ "$CDATE" -ge "2018053012" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2018053012 - elif [[ "$CDATE" -ge "2018021212" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2018021212 - elif [[ "$CDATE" -ge "2017103118" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017103118 - elif [[ "$CDATE" -ge "2017031612" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017031612 - elif [[ "$CDATE" -ge "2017030812" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017030812 - elif [[ "$CDATE" -ge "2016110812" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016110812 - elif [[ "$CDATE" -ge "2016090912" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016090912 - elif [[ "$CDATE" -ge "2016020312" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016020312 - elif [[ "$CDATE" -ge "2016011912" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016011912 - elif [[ "$CDATE" -ge "2015111012" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015111012 - elif [[ "$CDATE" -ge "2015100118" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015100118 - elif [[ "$CDATE" -ge "2015070218" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015070218 - elif [[ "$CDATE" -ge "2015011412" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015011412 - else - echo "WARNING: No SATINFO for $CDATE" - fi -fi - -# over-ride default GSI parameters -export lobsdiag_forenkf=".false." - -if [ $LEVS = "128" ]; then - export GRIDOPTS="nlayers(63)=1,nlayers(64)=1," - export SETUP="gpstop=55,nsig_ext=17,$SETUP" -fi - -echo "END: config.anal" diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index ee4578ae4a..007d6b4f1d 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -57,12 +57,16 @@ elif [ $machine = "WCOSS_C" ]; then export NWPROD="/gpfs/hps/nco/ops/nwprod" export DMPDIR="/gpfs/dell3/emc/global/dump" + [[ $(hostname |cut -c 1) = l ]] && export SITE="LUNA" + [[ $(hostname |cut -c 1) = s ]] && export SITE="SURGE" export RTMFIX=$CRTM_FIX elif [ $machine = "WCOSS_DELL_P3" ]; then export NWPROD="/gpfs/dell1/nco/ops/nwprod" export DMPDIR="/gpfs/dell3/emc/global/dump" + [[ $(hostname |cut -c 1) = m ]] && export SITE="MARS" + [[ $(hostname |cut -c 1) = v ]] && export SITE="VENUS" export RTMFIX=$CRTM_FIX fi @@ -136,7 +140,7 @@ if [ $machine = "THEIA" ]; then fi # Toggle to turn on/off GFS downstream processing. -export DO_BUFRSND="NO" +export DO_BUFRSND="YES" export DO_GEMPAK="NO" export DO_AWIPS="NO" @@ -155,8 +159,8 @@ export HOMEgsi="$HOMEgfs" export FIXgsi="$HOMEgfs/fix/fix_gsi" export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd" export HOMEpost="$HOMEgfs" -export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep_RB-5.2.0" -export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.v3.2.3" +export HOMEobsproc_prep="$BASE_GIT/obsproc/gfsv16/obsproc_prep.iss70457.netcdfhistory_new" +export HOMEobsproc_network="$BASE_GIT/obsproc/gfsv16/obsproc_global.iss71402.supportGFSv16" export HOMEobsproc_global=$HOMEobsproc_network export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb" @@ -229,10 +233,10 @@ export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: # GFS output and frequency export FHMIN_GFS=0 -export FHMAX_GFS_00=240 -export FHMAX_GFS_06=240 -export FHMAX_GFS_12=240 -export FHMAX_GFS_18=240 +export FHMAX_GFS_00=384 +export FHMAX_GFS_06=384 +export FHMAX_GFS_12=384 +export FHMAX_GFS_18=384 export FHMAX_GFS=$(eval echo \${FHMAX_GFS_$cyc}) export FHOUT_GFS=3 @@ -246,18 +250,31 @@ export FHOUT_HF_GFS=1 export QUILTING=".true." export OUTPUT_GRID="gaussian_grid" export OUTPUT_FILE="netcdf" -export WRITE_DOPOST=".false." +export WRITE_DOPOST=".true." + +# suffix options depending on file format +if [ $OUTPUT_FILE = "netcdf" ]; then + export SUFFIX=".nc" + export NEMSIO_IN=".false." + export NETCDF_IN=".true." +else + export SUFFIX=".nemsio" + export NEMSIO_IN=".true." + export NETCDF_IN=".false." +fi # IAU related parameters -export DOIAU="NO" # Enable 4DIAU for control with 3 increments +export DOIAU="YES" # Enable 4DIAU for control with 3 increments export IAUFHRS="3,6,9" export IAU_DELTHRS=6 export IAU_OFFSET=6 -export DOIAU_ENKF="NO" # Enable 4DIAU for EnKF ensemble +export DOIAU_ENKF="YES" # Enable 4DIAU for EnKF ensemble export IAUFHRS_ENKF="3,6,9" -export IAU_DELTHRS_ENKF=6 if [[ "$SDATE" = "$CDATE" ]]; then export IAU_OFFSET=0 ;fi +# Use Jacobians in eupd and thereby remove need to run eomg +export lobsdiag_forenkf=".true." + # run GLDAS to spin up land ICs export DO_GLDAS=YES @@ -271,9 +288,9 @@ export imp_physics=11 # Hybrid related export DOHYBVAR="YES" export NMEM_ENKF=@NMEM_ENKF@ -export SMOOTH_ENKF="YES" +export SMOOTH_ENKF="NO" export l4densvar=".true." -export lwrite4danl=".false." +export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then @@ -295,7 +312,22 @@ if [ $DONST = "YES" ]; then export FNTSFA=" "; fi export nst_anl=.true. # Analysis increments to zero in CALCINCEXEC -export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'" +export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc'" + +if [ $OUTPUT_FILE = "nemsio" ]; then + export DO_CALC_INCREMENT="YES" + export DO_CALC_ANALYSIS="NO" +fi + +# Stratospheric increments to zero +export INCVARS_ZERO_STRAT="'sphum_inc','liq_wat_inc','icmr_inc'" +export INCVARS_EFOLD="5" + +# Swith to generate netcdf or binary diagnostic files. If not specified, +# script default to binary diagnostic files. Set diagnostic file +# variables here since used in both DA and vrfy jobs +export netcdf_diag=".true." +export binary_diag=".false." # Archiving options @@ -304,11 +336,4 @@ export ARCH_CYC=00 # Archive data at this cycle for warm_start capabil export ARCH_WARMICFREQ=4 # Archive frequency in days for warm_start capability export ARCH_FCSTICFREQ=1 # Archive frequency in days for gdas and gfs forecast-only capability -# suffix options depending on file format -if [ $OUTPUT_FILE = "netcdf" ]; then - export SUFFIX=".nc" -else - export SUFFIX=".nemsio" -fi - echo "END: config.base" diff --git a/parm/config/config.base.emc.dyn.iau b/parm/config/config.base.emc.dyn.iau deleted file mode 100755 index 41ee44ad6d..0000000000 --- a/parm/config/config.base.emc.dyn.iau +++ /dev/null @@ -1,305 +0,0 @@ -#!/bin/ksh -x - -########## config.base ########## -# Common to all steps - -echo "BEGIN: config.base" - -# Machine environment -export machine="@MACHINE@" - -# EMC parallel or NCO production -export RUN_ENVIR="emc" - -# Account, queue, etc. -if [ $machine = "THEIA" ]; then - - export ACCOUNT="fv3-cpu" - export QUEUE="batch" - export QUEUE_ARCH="service" - -elif [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then - - export ACCOUNT="FV3GFS-T2O" - export QUEUE="dev" - export QUEUE_ARCH="dev_transfer" - -fi - -# Project to use in mass store: -HPSS_PROJECT=emc-global - -# Directories relative to installation areas: -export HOMEgfs=@HOMEgfs@ -export PARMgfs=$HOMEgfs/parm -export FIXgfs=$HOMEgfs/fix -export USHgfs=$HOMEgfs/ush -export UTILgfs=$HOMEgfs/util -export EXECgfs=$HOMEgfs/exec -export SCRgfs=$HOMEgfs/scripts - -######################################################################## - -# GLOBAL static environment parameters -if [ $machine = "THEIA" ]; then - - export NWPROD="/scratch4/NCEPDEV/global/save/glopara/nwpara" - export DMPDIR="/scratch4/NCEPDEV/global/noscrub/dump" - export RTMFIX="/scratch4/NCEPDEV/da/save/Michael.Lueken/nwprod/lib/crtm/2.2.3/fix_update" - -elif [ $machine = "WCOSS_C" ]; then - - export NWPROD="/gpfs/hps/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="LUNA" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="SURGE" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX - -elif [ $machine = "WCOSS_DELL_P3" ]; then - - export NWPROD="/gpfs/dell1/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="MARS" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="VENUS" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX -fi - - -# Machine specific paths used everywhere -if [ $machine = "THEIA" ]; then - - # USER specific paths - export HOMEDIR="/scratch4/NCEPDEV/global/save/$USER" - export STMP="/scratch4/NCEPDEV/stmp3/$USER" - export PTMP="/scratch4/NCEPDEV/stmp4/$USER" - export NOSCRUB="/scratch4/NCEPDEV/global/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/scratch4/NCEPDEV/global/save/glopara/git" - export BASE_SVN="/scratch4/NCEPDEV/global/save/glopara/svn" - -elif [ $machine = "WCOSS_C" ]; then - - # USER specific paths - export HOMEDIR="/gpfs/hps3/emc/global/noscrub/$USER" - export STMP="/gpfs/hps2/stmp/$USER" - export PTMP="/gpfs/hps2/ptmp/$USER" - export NOSCRUB="/gpfs/hps3/emc/global/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/gpfs/hps3/emc/global/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/hps3/emc/global/noscrub/emc.glopara/svn" - -elif [ $machine = "WCOSS_DELL_P3" ]; then - - # USER specific paths - export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER" - export STMP="/gpfs/dell3/stmp/$USER" - export PTMP="/gpfs/dell3/ptmp/$USER" - export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - -fi - -# Utilities needed in the scripts (mostly post) -if [ $machine = "THEIA" ]; then - - 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 POSTGRB2TBL="/scratch3/NCEPDEV/nwprod/lib/g2tmpl/v1.5.0/sorc/params_grib2_tbl_new" - -fi - -# Toggle to turn on/off GFS downstream processing. -export DO_BUFRSND="NO" -export DO_GEMPAK="NO" -export DO_AWIPS="NO" - -# NO for retrospective parallel; YES for real-time parallel -export REALTIME="NO" - - -#################################################### -# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE -# IF YOU HAVE TO MAKE MACHINE SPECIFIC CHANGES BELOW -# FEEL FREE TO MOVE THEM ABOVE THIS LINE TO KEEP IT -# CLEAR -#################################################### -# Build paths relative to $HOMEgfs -export HOMEgsi="$HOMEgfs" -export FIXgsi="$HOMEgfs/fix/fix_gsi" -export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd" -export HOMEpost="$HOMEgfs" -export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep.iss-46886.fv3gfs" -export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.iss-46886.fv3gfs" -export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb" - -# CONVENIENT utility scripts and other environment parameters -export NCP="/bin/cp -p" -export NMV="/bin/mv" -export NLN="/bin/ln -sf" -export VERBOSE="YES" -export KEEPDATA="NO" -export CHGRP_CMD="chgrp rstprod" -export NEMSIOGET="$HOMEgfs/exec/nemsio_get" - -# Machine environment, jobs, and other utility scripts -export BASE_ENV="$HOMEgfs/env" -export BASE_JOB="$HOMEgfs/jobs/rocoto" - -# EXPERIMENT specific environment parameters -export SDATE=@SDATE@ -export EDATE=@EDATE@ -export assim_freq=6 -export PSLOT="@PSLOT@" -export EXPDIR="@EXPDIR@/$PSLOT" -export ROTDIR="@ROTDIR@/$PSLOT" -export ROTDIR_DUMP="NO" -export DUMP_SUFFIX="" -export RUNDIR="$STMP/RUNDIRS/$PSLOT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -export ARCDIR="$NOSCRUB/archive/$PSLOT" -export ICSDIR="@ICSDIR@" -export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" - -# Commonly defined parameters in JJOBS -export envir=${envir:-"prod"} -export NET="gfs" -export RUN=${RUN:-${CDUMP:-"gfs"}} -export jlogfile="${EXPDIR}/logs/jlogfile" -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT:-""} -#export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} -#export LOGSCRIPT=${LOGSCRIPT:-"startmsg"} -export REDOUT="1>" -export REDERR="2>" - -export SENDECF="NO" -export SENDCOM="NO" -export SENDDBN="NO" -export SENDSDM="NO" - -# Resolution specific parameters -export LEVS=128 -export CASE="@CASECTL@" -export CASE_ENKF="@CASEENS@" - -# Surface cycle update frequency -if [[ "$CDUMP" == "gdas" ]] ; then - export FHCYC=0 - export FTSFS=10 -elif [[ "$CDUMP" == "gfs" ]] ; then - export FHCYC=24 -fi - -# Output frequency of the forecast model (for cycling) -export FHMIN=0 -export FHMAX=9 -export FHOUT=3 - -# cycle to run EnKF -export EUPD_CYC="BOTH" -#export EUPD_CYC="GDAS" - -# GFS cycle info -export gfs_cyc=@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=0 - -export FHMAX_GFS_00=240 -export FHMAX_GFS_06=180 -export FHMAX_GFS_12=180 -export FHMAX_GFS_18=180 -export FHMAX_GFS=$(eval echo \${FHMAX_GFS_$cyc}) - -export FHOUT_GFS=3 -export FHMAX_HF_GFS=0 -export FHOUT_HF_GFS=1 - -# 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 -# WRITE_DOPOST=true, use inline POST -export QUILTING=".true." -export OUTPUT_GRID="gaussian_grid" -export OUTPUT_FILE="nemsio" -export WRITE_DOPOST=".false." - -# IAU related parameters -export DOIAU="YES" -export IAUFHRS=3,6,9 -export IAU_DELTHRS=6 -export DOIAU_ENKF="YES" -export IAUFHRS_ENKF=3,6,9 -export IAU_DELTHRS_ENKF=6 -[[ "$SDATE" = "$CDATE" ]] && ( export DOIAU="NO"; export DOIAU_ENKF="NO" ) - -# run GLDAS to spin up land ICs -export DO_GLDAS=YES -export gldas_cyc=00 - -# Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL -export imp_physics=11 - -# Shared parameters -# Hybrid related -export DOHYBVAR="YES" -export NMEM_ENKF=@NMEM_ENKF@ -export SMOOTH_ENKF="YES" -export netcdf_diag=".true." -export binary_diag=".false." -export l4densvar=".true." -export lwrite4danl=".true." -export lobsdiag_forenkf=".true." - -# EnKF output frequency -if [ $DOHYBVAR = "YES" ]; then - export FHMIN_ENKF=3 - export FHMAX_ENKF=9 - if [ $l4densvar = ".true." ]; then - export FHOUT=1 - export FHOUT_ENKF=1 - else - export FHOUT_ENKF=3 - fi -fi - -# turned on nsst in anal and/or fcst steps, and turn off rtgsst -export DONST="YES" -if [ $DONST = "YES" ]; then export FNTSFA=" "; fi - -# The switch to apply SST elevation correction or not -export nst_anl=.true. - -# Analysis increments to zero in CALCINCEXEC -export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'" - - -# Archiving options -export HPSSARCH="NO" # save data to HPSS archive -export ARCH_CYC=00 # Archive data at this cycle for warm_start capability -export ARCH_WARMICFREQ=4 # Archive frequency in days for warm_start capability -export ARCH_FCSTICFREQ=1 # Archive frequency in days for gdas and gfs forecast-only capability - - -echo "END: config.base" diff --git a/parm/config/config.base.nco.static b/parm/config/config.base.nco.static index 8daa819e95..a01c862df6 100755 --- a/parm/config/config.base.nco.static +++ b/parm/config/config.base.nco.static @@ -194,7 +194,7 @@ export imp_physics=11 # Hybrid related export DOHYBVAR="YES" export NMEM_ENKF=80 -export SMOOTH_ENKF="YES" +export SMOOTH_ENKF="NO" export l4densvar=".true." export lwrite4danl=".false." diff --git a/parm/config/config.efcs b/parm/config/config.efcs index 2e698637ae..729181aa18 100755 --- a/parm/config/config.efcs +++ b/parm/config/config.efcs @@ -21,6 +21,8 @@ fi export ENKFFCSTSH="$HOMEgsi/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf" export NMEM_EFCSGRP=4 export RERUN_EFCSGRP="NO" + +# Turn off inline UPP for EnKF forecast export WRITE_DOPOST=".false." # Stochastic physics parameters (only for ensemble forecasts) @@ -52,9 +54,30 @@ fi export restart_interval=${restart_interval:-6} # For IAU, write restarts at beginning of window also -if [ $DOIAU_ENKF = "YES" ]; then export restart_interval=3; fi +if [ $DOIAU_ENKF = "YES" ]; then export restart_interval="6 -1"; fi + -export k_split=1 # model is unstable with k_split=2, n_split=6 and stochastic physics -export n_split=12 # make the model stable with k_split=1, n_split=12 +export OUTPUT_FILETYPES="$OUTPUT_FILE" +if [[ "$OUTPUT_FILE" == "netcdf" ]]; then + export ichunk2d=0; export jchunk2d=0 + export ichunk3d=0; export jchunk3d=0; export kchunk3d=0 + RESTILE=`echo $CASE_ENKF |cut -c 2-` + if [[ "$machine" == "WCOSS_DELL_P3" ]]; then + if [ $RESTILE -ge 768 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + export ichunk3d=$((4*RESTILE)) + export jchunk3d=$((2*RESTILE)) + export kchunk3d=1 + else + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi + if [[ "$machine" == "HERA" ]]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + if [ $RESTILE -le 192 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi +fi echo "END: config.efcs" diff --git a/parm/config/config.efcs.iau b/parm/config/config.efcs.iau deleted file mode 100755 index 69506c29fa..0000000000 --- a/parm/config/config.efcs.iau +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/ksh -x - -########## config.efcs ########## -# Ensemble forecast specific, dependency: config.fcst - -echo "BEGIN: config.efcs" - -# Source model specific information that is resolution dependent -. $EXPDIR/config.fv3 $CASE_ENKF - -# Get task specific resources -. $EXPDIR/config.resources efcs - -export npe_fv3=$npe_efcs - -if [ $QUILTING = ".true." ]; then - export npe_fv3=$(echo " $npe_fv3 + $WRITE_GROUP * $WRTTASK_PER_GROUP" | bc) - export npe_efcs=$npe_fv3 -fi - -export ENKFFCSTSH="$HOMEgsi/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf" -export NMEM_EFCSGRP=4 -export RERUN_EFCSGRP="NO" - -# Stochastic physics parameters (only for ensemble forecasts) -export DO_SKEB="YES" -export SKEB=0.3 -export SKEB_TAU=21600. -export SKEB_LSCALE=500000. -export SKEBNORM=0 -export SKEB_NPASS=30 -export SKEB_VDOF=5 -export DO_SHUM="YES" -export SHUM=0.005 -export SHUM_TAU=21600. -export SHUM_LSCALE=500000. -export DO_SPPT="YES" -export SPPT=0.5 -export SPPT_TAU=21600. -export SPPT_LSCALE=500000. -export SPPT_LOGIT=".true." -export SPPT_SFCLIMIT=".true." - -if [ $QUILTING = ".true." -a $OUTPUT_GRID = "gaussian_grid" ]; then - export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da" -else - export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da_orig" -fi - -# FV3 model namelist parameters to over-ride -export restart_interval=6 -# For IAU, write restarts at beginning of window also -if [ $DOIAU_ENKF = "YES" ]; then export restart_interval=3; fi -export k_split=1 # model is unstable with k_split=2, n_split=6 and stochastic physics -export n_split=12 # make the model stable with k_split=1, n_split=12 - -echo "END: config.efcs" diff --git a/parm/config/config.eobs b/parm/config/config.eobs index 02bae8f985..b8a0c3600c 100755 --- a/parm/config/config.eobs +++ b/parm/config/config.eobs @@ -26,4 +26,7 @@ fi export USE_RADSTAT="NO" # This can be only used when bias correction is non-zero. export GENDIAG="YES" # Diagnostic files must be created for EnKF +export lobsdiag_forenkf=".true." # write out jacobians from eobs + # need to specify .true. setting since config.anal sets to .false. + echo "END: config.eobs" diff --git a/parm/config/config.eobs.iau b/parm/config/config.eobs.iau deleted file mode 100755 index 0873c95ddd..0000000000 --- a/parm/config/config.eobs.iau +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/ksh -x - -########## config.eobs config.eomg ########## -# Ensemble innovation specific, dependency config.anal - -echo "BEGIN: config.eobs" - -# Get task specific resources -. $EXPDIR/config.resources eobs - -export INVOBSSH="$HOMEgsi/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf" -export ENKFINVOBSSH="$HOMEgsi/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf" -export NMEM_EOMGGRP=8 -export RERUN_EOMGGRP="YES" -export npe_gsi=$npe_eobs - -# GSI namelist options related to observer for EnKF -export OBSINPUT_INVOBS="dmesh(1)=225.0,dmesh(2)=225.0" -export OBSQC_INVOBS="tcp_width=60.0,tcp_ermin=2.0,tcp_ermax=12.0" -# save jacobian -export lobsdiag_forenkf=".true." - -if [ $LEVS = "128" ]; then - export GRIDOPTS_INVOBS="nlayers(63)=1,nlayers(64)=1," - export SETUP_INVOBS="gpstop=55,nsig_ext=17," -fi - -export USE_RADSTAT="NO" # This can be only used when bias correction is non-zero. -export GENDIAG="YES" # Diagnostic files must be created for EnKF -if [[ lobsdiag_forenkf = ".true." ]] ; then - export DIAG_TARBALL="YES" # make sure diag tarballs are saved for EnKF - if [[ "$CDUMP" = "gfs" ]] ; then - unset SETUP # revert to default (same as used for GDAS cycle) - fi -fi - -echo "END: config.eobs" diff --git a/parm/config/config.eupd b/parm/config/config.eupd index 61cb790a83..307d51fb45 100755 --- a/parm/config/config.eupd +++ b/parm/config/config.eupd @@ -11,6 +11,25 @@ echo "BEGIN: config.eupd" export ENKFUPDSH="$HOMEgsi/scripts/exglobal_enkf_update_fv3gfs.sh.ecf" export npe_enkf=$npe_eupd -export NAM_ENKF="analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" +# Use NAM_ENKF below for serial EnKF +##export NAM_ENKF="analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" + +# LETKF specific settings with model space localization +export modelspace_vloc=".true." # model space localization +export letkf_flag=".true." # use LETKF instead of serial filter +export getkf=".true." # Gain form of LETKF (needed for model-space localization) +export denkf=".true." # EnKF approximation (beneficial since less spread removed by analysis) +export nobsl_max=10000 # max number of obs in each LETKF volume (uses closest nobsl_max). can + # be reduced to speed up execution time. +export analpertwt=0.85 # relaxation to prior spread inflation factor +export readin_localization_enkf=".false." # Don’t read in localization scales from file (doesn’t make + # sense for LETKF if model space localization on and nobsl_max>0) +export corrlength=1250 # Horizontal localization scale (max horizontal distance to search for nobsl_max local obs) +export lnsigcutoff=2.75 # ignored if modelspace_vloc=.true. + +export lobsdiag_forenkf=".true." # use jacobian. must be .true. if modelspace_vloc=".true." + # need to specify .true. setting since config.anal sets to .false. + +export NAM_ENKF="smoothparm=35," echo "END: config.eupd" diff --git a/parm/config/config.eupd.iau b/parm/config/config.eupd.iau deleted file mode 100755 index 06660b050d..0000000000 --- a/parm/config/config.eupd.iau +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/ksh -x - -########## config.eupd ########## -# Ensemble update specific, dependency config.anal - -echo "BEGIN: config.eupd" - -# Get task specific resources -. $EXPDIR/config.resources eupd - -export ENKFUPDSH="$HOMEgsi/scripts/exglobal_enkf_update_fv3gfs.sh.ecf" -export npe_enkf=$npe_eupd - -# settings for LETKF with model space localization -export modelspace_vloc=".true." -export letkf_flag=".true." -export getkf=".true." -export denkf=".true." -export nobsl_max=10000 -export analpertwt=0.85 -export readin_localization_enkf=".false." -export corrlength=1250 -export lnsigcutoff=2.75 # ignored if modelspace_vloc=.true. - -# use jacobian -export lobsdiag_forenkf=".true." - -echo "END: config.eupd" diff --git a/parm/config/config.fcst b/parm/config/config.fcst index 8c96dee300..786826774a 100755 --- a/parm/config/config.fcst +++ b/parm/config/config.fcst @@ -19,7 +19,7 @@ export FORECASTSH="$HOMEgfs/scripts/exglobal_fcst_nemsfv3gfs.sh" export FCSTEXECDIR="$HOMEgfs/exec" #export FCSTEXECDIR="$HOMEfv3gfs/NEMS/exe" export FCSTEXEC="global_fv3gfs.x" -export npe_fv3=$npe_fcst # This is model resolution dependent, see note above +export npe_fv3=$npe_fcst if [[ "$CDUMP" == "gfs" ]] ; then export npe_fv3=$npe_fcst_gfs @@ -30,7 +30,7 @@ if [[ "$CDUMP" == "gfs" ]] ; then fi if [ $QUILTING = ".true." ]; then - export npe_fv3=$(echo " $npe_fv3 + $WRITE_GROUP * $WRTTASK_PER_GROUP" | bc) + export npe_fv3=$(echo " $npe_fcst + $WRITE_GROUP * $WRTTASK_PER_GROUP" | bc) export npe_fcst=$npe_fv3 export npe_fcst_gfs=$(echo " $npe_fcst_gfs + $WRITE_GROUP_GFS * $WRTTASK_PER_GROUP_GFS" | bc) fi @@ -138,6 +138,31 @@ export ishuffle=0 export shuffle=1 export deflate_level=1 +export OUTPUT_FILETYPES="$OUTPUT_FILE" +if [[ "$OUTPUT_FILE" == "netcdf" ]]; then + export ichunk2d=0; export jchunk2d=0 + export ichunk3d=0; export jchunk3d=0; export kchunk3d=0 + RESTILE=`echo $CASE |cut -c 2-` + if [[ "$machine" == "WCOSS_DELL_P3" ]]; then + if [ $RESTILE -ge 768 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + export ichunk3d=$((4*RESTILE)) + export jchunk3d=$((2*RESTILE)) + export kchunk3d=1 + else + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi + if [[ "$machine" == "HERA" ]]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + if [ $RESTILE -le 192 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi +fi + + +#--------------------------------------------------------------------- # Disable the use of coupler.res; get model start time from model_configure export USE_COUPLER_RES="NO" @@ -161,7 +186,7 @@ if [[ "$CDUMP" == "gdas" ]] ; then # GDAS cycle specific parameters export restart_interval=${restart_interval:-6} # For IAU, write restarts at beginning of window also - if [ $DOIAU = "YES" ]; then export restart_interval=3; fi + if [ $DOIAU = "YES" ]; then export restart_interval="6 9"; fi elif [[ "$CDUMP" == "gfs" ]] ; then # GFS cycle specific parameters diff --git a/parm/config/config.fv3 b/parm/config/config.fv3 index 3133d388d9..b483378f76 100755 --- a/parm/config/config.fv3 +++ b/parm/config/config.fv3 @@ -19,6 +19,20 @@ case_in=$1 echo "BEGIN: config.fv3" + +if [[ "$machine" = "WCOSS_DELL_P3" ]]; then + export npe_node_max=28 +elif [[ "$machine" = "WCOSS_C" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "THEIA" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "JET" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "HERA" ]]; then + export npe_node_max=40 +fi + + # (Standard) Model resolution dependent variables case $case_in in "C48") @@ -27,13 +41,13 @@ case $case_in in export layout_y=4 export layout_x_gfs=2 export layout_y_gfs=4 - export npe_node_fcst=24 export nth_fv3=1 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=1 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="4M" ;; "C96") @@ -42,13 +56,13 @@ case $case_in in export layout_y=4 export layout_x_gfs=4 export layout_y_gfs=4 - export npe_node_fcst=24 export nth_fv3=1 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=1 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="4M" ;; "C192") @@ -57,13 +71,13 @@ case $case_in in export layout_y=6 export layout_x_gfs=4 export layout_y_gfs=6 - export npe_node_fcst=12 export nth_fv3=2 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="0.23,1.5,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=2 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="8M" ;; "C384") @@ -72,13 +86,13 @@ case $case_in in export layout_y=6 export layout_x_gfs=6 export layout_y_gfs=6 - export npe_node_fcst=12 - export nth_fv3=2 + export nth_fv3=1 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="1.1,0.72,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=2 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="16M" ;; "C768") @@ -87,13 +101,13 @@ case $case_in in export layout_y=8 export layout_x_gfs=12 export layout_y_gfs=8 - export npe_node_fcst=6 export nth_fv3=4 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="4.0,0.15,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=2 - export WRTTASK_PER_GROUP=24 - export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP=$(echo "2*$npe_node_max" |bc) + export WRITE_GROUP_GFS=2 + export WRTTASK_PER_GROUP_GFS=$(echo "2*$npe_node_max" |bc) export WRTIOBUF="32M" ;; "C1152") @@ -102,13 +116,13 @@ case $case_in in export layout_y=16 export layout_x_gfs=8 export layout_y_gfs=16 - export npe_node_fcst=6 export nth_fv3=4 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="4.0,0.10,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=4 - export WRTTASK_PER_GROUP=84 + export WRTTASK_PER_GROUP=$(echo "2*$npe_node_max" |bc) export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=84 + export WRTTASK_PER_GROUP_GFS=$(echo "2*$npe_node_max" |bc) export WRTIOBUF="48M" ;; "C3072") @@ -117,13 +131,13 @@ case $case_in in export layout_y=32 export layout_x_gfs=16 export layout_y_gfs=32 - export npe_node_fcst=6 export nth_fv3=4 + export npe_node_fcst=$(echo "$npe_node_max/$nth_fv3" |bc) export cdmbgwd="4.0,0.05,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=4 - export WRTTASK_PER_GROUP=120 + export WRTTASK_PER_GROUP=$(echo "3*$npe_node_max" |bc) export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=120 + export WRTTASK_PER_GROUP_GFS=$(echo "3*$npe_node_max" |bc) export WRTIOBUF="64M" ;; *) diff --git a/parm/config/config.gldas b/parm/config/config.gldas index 3ca0361bc3..0177078a54 100755 --- a/parm/config/config.gldas +++ b/parm/config/config.gldas @@ -12,9 +12,7 @@ export GLDASSH=$HOMEgfs/scripts/exgdas_gldas.sh.ecf export gldas_spinup_hours=72 -if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then - export CPCGAUGE=/gpfs/dell2/emc/modeling/noscrub/Fanglin.Yang/stat/cpcUniGauge -elif [ $machine = "HERA" ]; then +if [ $machine = "HERA" ]; then export CPCGAUGE=/scratch1/NCEPDEV/global/Fanglin.Yang/stat/cpcUniGauge fi diff --git a/parm/config/config.post b/parm/config/config.post index a5fbac9a28..85a72955f6 100755 --- a/parm/config/config.post +++ b/parm/config/config.post @@ -12,7 +12,7 @@ echo "BEGIN: config.post" #------------------------------------------- # No. of concurrent post jobs [0 implies sequential] -export NPOSTGRP=20 +export NPOSTGRP=42 export OUTTYP=4 export MODEL_OUT_FORM=binarynemsiompiio if [ $OUTPUT_FILE = "netcdf" ]; then @@ -27,7 +27,7 @@ export GFSDWNSH="$HOMEpost/ush/fv3gfs_dwn_nems.sh" export POSTGPSH="$HOMEpost/ush/gfs_nceppost.sh" export POSTGPEXEC="$HOMEpost/exec/gfs_ncep_post" export GOESF=YES # goes image -export GTGF=NO # gtg icing product +export WAFSF=NO # WAFS products export FLXF=YES # grib2 flux file written by post export PGB1F=YES if [ $RUN_ENVIR = "nco" ]; then diff --git a/parm/config/config.resources b/parm/config/config.resources index c43d1808b1..52ed0f1a9b 100755 --- a/parm/config/config.resources +++ b/parm/config/config.resources @@ -40,87 +40,52 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then elif [ $step = "anal" ]; then - export wtime_anal="02:30:00" + export wtime_anal="02:00:00" + export npe_anal=800 + if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then export npe_anal=84; fi + export nth_anal=4 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_anal=7; fi + export npe_node_anal=$(echo "$npe_node_max / $nth_anal" | bc) export nth_cycle=$npe_node_max - export npe_anal=160 - export npe_node_anal=2 - export nth_anal=12 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_anal=14 - fi - if [[ "$machine" != "WCOSS_C" ]]; then - if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then - export npe_anal=84 - export nth_anal=4 - export npe_node_anal=$(echo "$npe_node_max / $nth_anal" | bc) - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export npe_node_anal=7 - fi - fi - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_anal="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_anal="3072M"; fi elif [ $step = "gldas" ]; then export wtime_gldas="02:00:00" export npe_gldas=96 export nth_gldas=1 - export npe_node_gldas=24 + export npe_node_gldas=$npe_node_max export npe_gaussian=96 export nth_gaussian=1 - export npe_node_gaussian=24 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export npe_gldas=112 - export npe_node_gldas=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_gldas="3072M" - fi + export npe_node_gaussian=24 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export npe_gldas=112 ; fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_gldas="3072M"; fi elif [ $step = "fcst" ]; then - if [[ "$machine" == "WCOSS_DELL" ]]; then - export npe_node_max=24 - fi export wtime_fcst="01:00:00" - export wtime_fcst_gfs="06:00:00" + export wtime_fcst_gfs="8:00:00" export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) export nth_fcst=${nth_fv3:-2} - #export npe_node_fcst=${npe_node_fcst:-12} - export npe_node_fcst=$(echo "$npe_node_max / $nth_fcst" | bc) - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_fcst="1024M" - fi + export npe_node_fcst=${npe_node_fcst:-12} + if [[ "$machine" == "WCOSS_C" ]]; then export memory_fcst="1024M"; fi elif [ $step = "post" ]; then - export wtime_post="00:30:00" - export wtime_post_gfs="01:30:00" - export npe_post=144 + export wtime_post="02:00:00" + export wtime_post_gfs="06:00:00" + export npe_post=48 export nth_post=1 + export npe_node_post=12 export npe_node_dwn=$npe_node_max - if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then - export wtime_post="00:10:00" - export wtime_post_gfs="00:30:00" - export npe_post=$(echo "$npe_node_max * 2" | bc) - fi - export npe_node_post=$(echo "$npe_node_max / $nth_post" | bc) - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_post="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_post="3072M"; fi elif [ $step = "vrfy" ]; then export wtime_vrfy="03:00:00" - if [[ "$machine" == "HERA" ]]; then - export wtime_vrfy_gfs="08:00:00" - else - export wtime_vrfy_gfs="06:00:00" - fi - export npe_vrfy=1 + export wtime_vrfy_gfs="06:00:00" + export npe_vrfy=3 export nth_vrfy=1 export npe_node_vrfy=1 export npe_vrfy_gfs=1 @@ -159,7 +124,7 @@ elif [ $step = "eobs" -o $step = "eomg" ]; then export wtime_eobs="00:30:00" export wtime_eomg="01:00:00" if [ $CASE = "C768" ]; then - export npe_eobs=84 + export npe_eobs=400 elif [ $CASE = "C384" ]; then export npe_eobs=42 elif [ $CASE = "C192" ]; then @@ -168,19 +133,18 @@ elif [ $step = "eobs" -o $step = "eomg" ]; then export npe_eobs=14 fi export nth_eobs=2 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_eobs=7; fi export npe_node_eobs=$(echo "$npe_node_max / $nth_eobs" | bc) - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_eobs="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_eobs="3072M"; fi elif [ $step = "eupd" ]; then - export wtime_eupd="00:30:00" + export wtime_eupd="01:30:00" if [ $CASE = "C768" ]; then - export npe_eupd=240 + export npe_eupd=540 export nth_eupd=6 if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_eupd=7 + export nth_eupd=9 fi elif [ $CASE = "C384" ]; then export npe_eupd=84 @@ -199,58 +163,37 @@ elif [ $step = "ecen" ]; then export wtime_ecen="00:30:00" export npe_ecen=80 export nth_ecen=6 - export npe_node_ecen=4 - if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then - export npe_ecen=84 - export nth_ecen=2 - export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) - fi - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_ecen=7 - fi + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_ecen=7; fi + if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then export nth_ecen=2; fi + export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) export nth_cycle=$nth_ecen - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_ecen="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_ecen="3072M"; fi elif [ $step = "esfc" ]; then export wtime_esfc="03:00:00" export npe_esfc=80 - export npe_node_esfc=24 + export npe_node_esfc=$npe_node_max export nth_esfc=1 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export npe_node_esfc=28 - export nth_esfc=1 - fi export nth_cycle=$nth_esfc - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_esfc="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_esfc="3072M"; fi elif [ $step = "efcs" ]; then export wtime_efcs="03:00:00" export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) export nth_efcs=${nth_fv3:-2} - #export npe_node_efcs=${npe_node_fcst:-12} export npe_node_efcs=$(echo "$npe_node_max / $nth_efcs" | bc) - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_efcs="254M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_efcs="254M"; fi elif [ $step = "epos" ]; then - export wtime_epos="02:00:00" + export wtime_epos="03:00:00" export npe_epos=80 - export npe_node_epos=4 export nth_epos=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_epos=7 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_epos="254M" - fi + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_epos=7; fi + export npe_node_epos=$(echo "$npe_node_max / $nth_epos" | bc) + if [[ "$machine" == "WCOSS_C" ]]; then export memory_epos="254M"; fi elif [ $step = "postsnd" ]; then @@ -264,9 +207,7 @@ elif [ $step = "postsnd" ]; then export npe_node_postsnd=4 export npe_postsndcfp=9 fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_postsnd="254M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_postsnd="254M"; fi elif [ $step = "awips" ]; then @@ -279,9 +220,7 @@ elif [ $step = "awips" ]; then export npe_node_awips=2 export nth_awips=1 fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_awips="2048M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_awips="2048M"; fi elif [ $step = "gempak" ]; then @@ -289,9 +228,7 @@ elif [ $step = "gempak" ]; then export npe_gempak=17 export npe_node_gempak=4 export nth_gempak=3 - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_gempak="254M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_gempak="254M"; fi else diff --git a/parm/config/config.resources.C96 b/parm/config/config.resources.C96 deleted file mode 100755 index 80a7501232..0000000000 --- a/parm/config/config.resources.C96 +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/ksh -x - -########## config.resources ########## -# Set resource information for job tasks -# e.g. walltime, node, cores per node, memory etc. - -if [ $# -ne 1 ]; then - - echo "Must specify an input task argument to set resource variables!" - echo "argument can be any one of the following:" - echo "anal fcst post vrfy arch" - echo "eobs eomg eupd ecen efcs epos earc" - echo "postsnd awips gempak" - exit 1 - -fi - -step=$1 - -echo "BEGIN: config.resources" - -if [ $step = "prep" -o $step = "prepbufr" ]; then - - eval "export wtime_$step='00:30:00'" - eval "export npe_$step=4" - eval "export npe_node_$step=4" - eval "export nth_$step=1" - -elif [ $step = "anal" ]; then - - export wtime_anal="00:30:00" - export npe_anal=120 - export npe_node_anal=2 - export nth_anal=12 - export nth_cycle=24 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_anal=14 - export nth_cycle=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_anal="3072M" - fi - -elif [ $step = "fcst" ]; then - - export wtime_fcst="00:15:00" - export wtime_fcst_gfs="06:00:00" - export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) - export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) - export npe_node_fcst=${npe_node_fcst:-12} - export nth_fcst=${nth_fv3:-2} - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_fcst="1024M" - fi - -elif [ $step = "post" ]; then - - export wtime_post="00:30:00" - export wtime_post_gfs="06:00:00" - export npe_post=84 - export nth_post=1 - export npe_node_post=12 - export npe_node_dwn=24 - if [[ "$machine" == "WCOSS_DELL_P3" ]]; then - export npe_node_post=14 - export npe_node_dwn=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_post="3072M" - fi - -elif [ $step = "vrfy" ]; then - - export wtime_vrfy="03:00:00" - export wtime_vrfy_gfs="06:00:00" - export npe_vrfy=1 - export nth_vrfy=1 - export npe_node_vrfy=1 - export npe_vrfy_gfs=1 - export npe_node_vrfy_gfs=1 - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_vrfy="3072M" - elif [[ "$machine" == "THEIA" ]]; then - export memory_vrfy="16384M" - fi - -elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then - - eval "export wtime_$step='06:00:00'" - eval "export npe_$step=1" - eval "export npe_node_$step=1" - eval "export nth_$step=1" - eval "export memory_$step=2048M" - -elif [ $step = "eobs" -o $step = "eomg" ]; then - - export wtime_eobs="00:15:00" - export wtime_eomg="00:30:00" - export npe_eobs=72 - export nth_eobs=2 - export npe_node_eobs=12 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export npe_node_eobs=14 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_eobs="3072M" - fi - -elif [ $step = "eupd" ]; then - - export wtime_eupd="00:20:00" - export npe_eupd=120 - export npe_node_eupd=4 - export nth_eupd=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_eupd=7 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_eupd="3072M" - fi - -elif [ $step = "ecen" ]; then - - export wtime_ecen="00:30:00" - export npe_ecen=80 - export npe_node_ecen=4 - export nth_ecen=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_ecen=7 - fi - export nth_cycle=$nth_ecen - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_ecen="3072M" - fi - -elif [ $step = "efcs" ]; then - - export wtime_efcs="01:00:00" - export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) - export npe_node_efcs=${npe_node_fcst:-12} - export nth_efcs=${nth_fv3:-2} - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_efcs="254M" - fi - -elif [ $step = "epos" ]; then - - export wtime_epos="00:30:00" - export npe_epos=80 - export npe_node_epos=4 - export nth_epos=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_epos=7 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_epos="254M" - fi - -elif [ $step = "postsnd" ]; then - - export wtime_postsnd="02:00:00" - export npe_postsnd=12 - export nth_postsnd=1 - export npe_node_postsnd=3 - export npe_postsndcfp=10 - export npe_node_postsndcfp=3 - if [[ "$machine" == "WCOSS_DELL_P3" ]]; then - export npe_node_postsnd=4 - export npe_postsndcfp=9 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_postsnd="254M" - fi - -elif [ $step = "awips" ]; then - - export wtime_awips="03:30:00" - export npe_awips=4 - export npe_node_awips=4 - export nth_awips=2 - if [[ "$machine" == "WCOSS_DELL_P3" ]]; then - export npe_awips=2 - export npe_node_awips=2 - export nth_awips=1 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_awips="2048M" - fi - -elif [ $step = "gempak" ]; then - - export wtime_gempak="02:00:00" - export npe_gempak=17 - export npe_node_gempak=4 - export nth_gempak=3 - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_gempak="254M" - fi - -else - - echo "Invalid step = $step, ABORT!" - exit 2 - -fi - -echo "END: config.resources" diff --git a/parm/config/config.vrfy.iau b/parm/config/config.vrfy.iau deleted file mode 100755 index 968327932c..0000000000 --- a/parm/config/config.vrfy.iau +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/ksh -x - -########## config.vrfy ########## -# Verification step specific - -echo "BEGIN: config.vrfy" - -# Get task specific resources -. $EXPDIR/config.resources vrfy - -export VDUMP="gfs" # verifying dump -export CDUMPFCST="gdas" # Fit-to-obs with GDAS/GFS prepbufr -export CDFNL="gdas" # Scores verification against GDAS/GFS analysis - -export MKPGB4PRCP="YES" # make 0.25-deg pgb files in ARCDIR for precip verification -export VRFYFITS="YES" # Fit to observations -export VSDB_STEP1="YES" # populate VSDB database -export VSDB_STEP2="NO" -export VRFYG2OBS="YES" # Grid to observations, see note below if turning ON -export VRFYPRCP="YES" # Precip threat scores -export VRFYRAD="NO" # Radiance data assimilation monitoring -export VRFYOZN="NO" # Ozone data assimilation monitoring -export VRFYMINMON="YES" # GSI minimization monitoring -export VRFYTRAK="YES" # Hurricane track verification -export VRFYGENESIS="YES" # Cyclone genesis verification -export RUNMOS="NO" # whether to run entire MOS package - - -#------------------------------------------------- -# Fit to Observations -#------------------------------------------------- - -if [ $VRFYFITS = "YES" ]; then - - export PRVT=$HOMEgfs/fix/fix_gsi/prepobs_errtable.global - export HYBLEVS=$HOMEgfs/fix/fix_am/global_hyblev.l65.txt - export CUE2RUN=$QUEUE - - if [ $machine = "WCOSS_C" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" - export PREPQFITSH="$fitdir/subfits_cray_nems" - elif [ $machine = "WCOSS_DELL_P3" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" - export PREPQFITSH="$fitdir/subfits_dell_nems" - elif [ $machine = "THEIA" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" - export PREPQFITSH="$fitdir/subfits_theia_nems" - fi - -fi - - -#---------------------------------------------------------- -# VSDB STEP1, Verify Precipipation and Grid To Obs options -#---------------------------------------------------------- -# All these call $VSDBSH - -if [ "$CDUMP" = "gfs" ] ; then - ddd=`echo $CDATE |cut -c 1-8` - #if [ $ddd -eq 5 -o $ddd -eq 10 ]; then export VSDB_STEP2 = "YES" ;fi - - if [ $VSDB_STEP1 = "YES" -o $VSDB_STEP2 = "YES" -o $VRFYPRCP = "YES" -o $VRFYG2OBS = "YES" ]; then - export BACKDATEVSDB=24 # execute vsdbjob for the previous day - export VBACKUP_PRCP=24 # back up for QPF verification data - export vsdbsave="$NOSCRUB/archive/vsdb_data" # place to save vsdb database - export vsdbhome=$BASE_VERIF # location of global verification scripts - export VSDBSH="$vsdbhome/vsdbjob.sh" # VSDB job script - export vlength=$FHMAX_GFS # verification length - export vhr_rain=$FHMAX_GFS # verification length for precip - export ftyplist="pgbq" # verif. files used for computing QPF ETS scores - export ptyplist="PRATE" # precip types in GRIB: PRATE or APCP - export anltype="gfs" # default=gfs, analysis type (gfs or gdas) for verification - export rain_bucket=6 # prate in pgb files is 6-hr accumulated - - export VSDB_START_DATE="$SDATE" # starting date for vsdb maps - export webhost="emcrzdm.ncep.noaa.gov" # webhost(rzdm) computer - export webhostid="$USER" # webhost(rzdm) user name - export SEND2WEB="NO" # whether or not to send maps to webhost - export WEBDIR="/home/people/emc/www/htdocs/gmb/${webhostid}/vsdb/$PSLOT" - export mdlist="gfs $PSLOT " # exps (up to 10) to compare in maps - fi -fi - - -#---------------------------------------------------------- -# Minimization, Radiance and Ozone Monitoring -#---------------------------------------------------------- - -if [ $VRFYRAD = "YES" -o $VRFYMINMON = "YES" -o $VRFYOZN = "YES" ]; then - - export envir="para" - - # Radiance Monitoring - if [[ "$VRFYRAD" == "YES" && "$CDUMP" == "$CDFNL" ]] ; then - - export RADMON_SUFFIX=$PSLOT - export TANKverf="$NOSCRUB/monitor/radmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - export VRFYRADSH="$HOMEgfs/jobs/JGDAS_VERFRAD" - else - echo "WARNING: Radiance monitoring is not enabled on $machine!" - export VRFYRAD="NO" - fi - - fi - - # Minimization Monitoring - if [[ "$VRFYMINMON" = "YES" ]] ; then - - export MINMON_SUFFIX=$PSLOT - export M_TANKverf="$NOSCRUB/monitor/minmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - if [[ "$CDUMP" = "gdas" ]] ; then - export VRFYMINSH="$HOMEgfs/jobs/JGDAS_VMINMON" - elif [[ "$CDUMP" = "gfs" ]] ; then - export VRFYMINSH="$HOMEgfs/jobs/JGFS_VMINMON" - fi - else - echo "WARNING: Minimization monitoring is not enabled on $machine!" - export VRFYMINMON="NO" - fi - - fi - - # Ozone Monitoring - if [[ "$VRFYOZN" == "YES" && "$CDUMP" == "$CDFNL" ]] ; then - - export HOMEgfs_ozn="$HOMEgfs" - export OZNMON_SUFFIX=$PSLOT - export TANKverf_ozn="$NOSCRUB/monitor/oznmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - export VRFYOZNSH="$HOMEgfs/jobs/JGDAS_VERFOZN" - else - echo "WARNING: Ozone monitoring is not enabled on $machine!" - export VRFYOZN="NO" - fi - - fi - -fi - - -#------------------------------------------------- -# Cyclone genesis and cyclone track verification -#------------------------------------------------- - -if [ $machine = "WCOSS_C" ] ; then - export ens_tracker_ver=v1.1.13.1 - export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver} -elif [ $machine = "WCOSS_DELL_P3" ] ; then - export ens_tracker_ver=v1.1.13.1 - export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver} -elif [ $machine = "THEIA" ] ; then - export ens_tracker_ver=v1.1.13.2 - export HOMEens_tracker=$BASE_GIT/tracker/ens_tracker.${ens_tracker_ver} -else - echo "WARNING: Genesis and cyclone verifications are not enabled on $machine!" - export VRFYGENESIS="NO" - export VRFYTRAK="NO" -fi - - -if [ "$VRFYTRAK" = "YES" ]; then - - export TRACKERSH="$HOMEgfs/jobs/JGFS_CYCLONE_TRACKER" - if [ "$CDUMP" = "gdas" ]; then - export FHOUT_CYCLONE=3 - export FHMAX_CYCLONE=$FHMAX - else - export FHOUT_CYCLONE=6 - export FHMAX_CYCLONE=$(( FHMAX_GFS<240 ? FHMAX_GFS : 240 )) - fi - if [ $machine = "THEIA" ]; then - export COMROOTp1="/scratch4/NCEPDEV/rstprod/com" - export COMINsyn="$COMROOTp1/arch/prod/syndat" - fi -fi - - -if [[ "$VRFYGENESIS" == "YES" && "$CDUMP" == "gfs" ]]; then - - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ] ; then - export GENESISSH="$HOMEgfs/jobs/JGFS_CYCLONE_GENESIS" - else - echo "WARNING: Genesis verification is not enabled on $machine!" - export VRFYGENESIS="NO" - export GENESISSH="" - fi -fi - -if [[ "$RUNMOS" == "YES" && "$CDUMP" == "gfs" ]]; then - - if [ $machine = "WCOSS_C" ] ; then - export RUNGFSMOSSH="$HOMEgfs/scripts/run_gfsmos_master.sh.cray" - elif [ $machine = "WCOSS_DELL_P3" ] ; then - export RUNGFSMOSSH="$HOMEgfs/scripts/run_gfsmos_master.sh.dell" - else - echo "WARNING: MOS package is not enabled on $machine!" - export RUNMOS="NO" - export RUNGFSMOSSH="" - fi -fi - - - -echo "END: config.vrfy" diff --git a/scripts/exglobal_fcst_nemsfv3gfs.sh b/scripts/exglobal_fcst_nemsfv3gfs.sh index 2a2b658228..a4bc2b0e2c 100755 --- a/scripts/exglobal_fcst_nemsfv3gfs.sh +++ b/scripts/exglobal_fcst_nemsfv3gfs.sh @@ -651,7 +651,12 @@ write_dopost: ${WRITE_DOPOST:-".false."} num_files: ${NUM_FILES:-2} filename_base: 'atm' 'sfc' output_grid: $OUTPUT_GRID -output_file: $OUTPUT_FILE +output_file: $OUTPUT_FILETYPES +ichunk2d: ${ichunk2d:-0} +jchunk2d: ${jchunk2d:-0} +ichunk3d: ${ichunk3d:-0} +jchunk3d: ${jchunk3d:-0} +kchunk3d: ${kchunk3d:-0} ideflate: ${ideflate:-1} nbits: ${nbits:-14} write_nemsioflip: $WRITE_NEMSIOFLIP diff --git a/sorc/checkout.sh b/sorc/checkout.sh index bea702401d..f5844cf6fb 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -10,14 +10,8 @@ if [[ ! -d fv3gfs.fd ]] ; then #git clone https://github.com/ufs-community/ufs-weather-model fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 git clone https://github.com/junwang-noaa/ufs-weather-model fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 cd fv3gfs.fd - git checkout gfsv16_updates + git checkout netcdf_parallel git submodule update --init --recursive - - #git clone gerrit:NEMSfv3gfs fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 - #cd fv3gfs.fd - ##git checkout gfs.v16_PhysicsUpdate - #git submodule update --init --recursive - cd ${topdir} else echo 'Skip. Directory fv3gfs.fd already exists.' @@ -28,7 +22,7 @@ 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 feature/fv3_ncio + git checkout feature/parallel_ncio git submodule update cd ${topdir} else @@ -47,9 +41,12 @@ 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 + #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/v2.0.0 + git clone https://github.com/GeorgeGayno-NOAA/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 cd ufs_utils.fd - git checkout release/v2.0.0 + git checkout feature/PNetcdf cd ${topdir} else echo 'Skip. Directory ufs_utils.fd already exists.' @@ -60,7 +57,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.0 + git checkout upp_gfsv16_release.v1.0.2 cd ${topdir} else echo 'Skip. Directory gfs_post.fd already exists.' @@ -82,7 +79,7 @@ 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.4.1 + git checkout verif_global_v1.5.0 cd ${topdir} else echo 'Skip. Directory verif-global.fd already exist.' diff --git a/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 b/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 index 8dc66bccb3..0d05da8091 100644 --- a/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 +++ b/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 @@ -242,19 +242,25 @@ subroutine read_input_data print* print*,"READ CLD_AMT" allocate(cldamt_input(ij_input,lev)) - call read_vardata(indset, 'cld_amt', work3d, errcode=iret) - if (iret == 0) then - do vlev = 1, lev - rvlev = lev+1-vlev - cldamt_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) - print*,'MAX/MIN CLD_AMT AT LEVEL ', vlev, 'IS: ', maxval(cldamt_input(:,vlev)), minval(cldamt_input(:,vlev)) - enddo - icldamt = 1 + if (cld_amt) then + call read_vardata(indset, 'cld_amt', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + cldamt_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN CLD_AMT AT LEVEL ', vlev, 'IS: ', maxval(cldamt_input(:,vlev)), minval(cldamt_input(:,vlev)) + enddo + icldamt = 1 + else + cldamt_input = missing_value + print*,'CLDAMT NOT IN INPUT FILE' + icldamt = 0 + endif else cldamt_input = missing_value - print*,'CLDAMT NOT IN INPUT FILE' + print*,'CLDAMT NOT READ - CLD_AMT NAMELIST OPTION NOT SET TO TRUE' icldamt = 0 - endif + end if call read_vardata(indset, 'dpres', work3d, errcode=iret) if (iret == 0) then diff --git a/sorc/enkf_chgres_recenter_nc.fd/setup.f90 b/sorc/enkf_chgres_recenter_nc.fd/setup.f90 index b4a876c9c6..4bb1a0253c 100644 --- a/sorc/enkf_chgres_recenter_nc.fd/setup.f90 +++ b/sorc/enkf_chgres_recenter_nc.fd/setup.f90 @@ -12,6 +12,7 @@ module setup integer, public :: i_output integer, public :: j_output integer , public :: ij_output + logical, public :: cld_amt public :: program_setup @@ -24,7 +25,9 @@ subroutine program_setup integer :: istat namelist /chgres_setup/ i_output, j_output, input_file, output_file, & - terrain_file, vcoord_file + terrain_file, vcoord_file, cld_amt + + cld_amt = .false. ! default option print* print*,"OPEN SETUP NAMELIST." diff --git a/sorc/gaussian_sfcanl.fd/makefile.sh b/sorc/gaussian_sfcanl.fd/makefile.sh index 61fa87a60b..b1c5adefde 100755 --- a/sorc/gaussian_sfcanl.fd/makefile.sh +++ b/sorc/gaussian_sfcanl.fd/makefile.sh @@ -5,7 +5,7 @@ export FFLAGS="-O3 -fp-model precise -g -r8 -i4" #export FFLAGS="-g -r8 -i4 -warn unused -check bounds" export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" +export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 " make clean make build