From ec72190c6e75e0c97b440f9dad9a2fd55559bb12 Mon Sep 17 00:00:00 2001 From: Emily Liu Date: Thu, 20 Apr 2023 15:45:06 +0000 Subject: [PATCH 1/2] Modify hpc stack to point to hpc-stack-gfsv16 since hpc-stack is outdated. --- modulefiles/gsi_common.lua | 4 +++- modulefiles/gsi_hera.intel.lua | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modulefiles/gsi_common.lua b/modulefiles/gsi_common.lua index a3442bf13..9f82e134a 100644 --- a/modulefiles/gsi_common.lua +++ b/modulefiles/gsi_common.lua @@ -6,7 +6,8 @@ local netcdf_ver=os.getenv("netcdf_ver") or "4.7.4" local bufr_ver=os.getenv("bufr_ver") or "11.7.0" local bacio_ver=os.getenv("bacio_ver") or "2.4.1" -local w3emc_ver=os.getenv("w3emc_ver") or "2.9.1" +local w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +local w3nco_ver=os.getenv("w3nco_ver") or "2.4.1" local sp_ver=os.getenv("sp_ver") or "2.3.3" local ip_ver=os.getenv("ip_ver") or "3.3.3" local sigio_ver=os.getenv("sigio_ver") or "2.3.2" @@ -21,6 +22,7 @@ load(pathJoin("netcdf", netcdf_ver)) load(pathJoin("bufr", bufr_ver)) load(pathJoin("bacio", bacio_ver)) load(pathJoin("w3emc", w3emc_ver)) +load(pathJoin("w3nco", w3nco_ver)) load(pathJoin("sp", sp_ver)) load(pathJoin("ip", ip_ver)) load(pathJoin("sigio", sigio_ver)) diff --git a/modulefiles/gsi_hera.intel.lua b/modulefiles/gsi_hera.intel.lua index e1f45be71..986b78127 100644 --- a/modulefiles/gsi_hera.intel.lua +++ b/modulefiles/gsi_hera.intel.lua @@ -1,9 +1,9 @@ help([[ ]]) -prepend_path("MODULEPATH", "/scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack") +prepend_path("MODULEPATH", "/scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack-gfsv16/modulefiles/stack") -local hpc_ver=os.getenv("hpc_ver") or "1.1.0" +local hpc_ver=os.getenv("hpc_ver") or "1.2.0" local hpc_intel_ver=os.getenv("hpc_intel_ver") or "18.0.5.274" local impi_ver=os.getenv("hpc_impi_ver") or "2018.0.4" local cmake_ver=os.getenv("cmake_ver") or "3.20.1" From 1d6e6c6f5578dc45354f27769720aa588b50bb38 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Sat, 13 May 2023 20:20:37 +0000 Subject: [PATCH 2/2] update regression tests --- regression/CMakeLists.txt | 13 +- regression/arw_binary.sh | 313 ---- regression/arw_netcdf.sh | 316 ---- regression/global_3dvar.sh | 305 ++++ regression/global_4denvar.sh | 327 ++++ regression/global_4denvar_T126.sh | 415 ----- regression/global_4dvar.sh | 338 ++++ regression/global_4dvar_T62.sh | 439 ----- regression/global_C96_fv3aero.sh | 334 ---- regression/global_C96_fv3aerorad.sh | 305 ---- regression/global_T62.sh | 451 ----- regression/global_T62_ozonly.sh | 429 ----- regression/global_enkf.sh | 189 +++ regression/global_enkf_T62.sh | 180 -- regression/global_fv3_4denvar_C192.sh | 420 ----- regression/global_fv3_4denvar_T126.sh | 432 ----- regression/global_hybrid_T126.sh | 365 ----- regression/global_lanczos_T62.sh | 404 ----- regression/global_nemsio_T62.sh | 419 ----- regression/hwrf_nmm_d2.sh | 8 +- regression/hwrf_nmm_d3.sh | 8 +- regression/multi_regression.sh | 39 +- regression/netcdf_fv3_regional.sh | 5 +- regression/nmm_binary.sh | 320 ---- regression/nmm_netcdf.sh | 317 ---- regression/nmmb_nems_4denvar.sh | 238 --- regression/regression_driver.sh | 8 +- regression/regression_namelists.sh | 1949 +++++++--------------- regression/regression_namelists_db.sh | 2176 ++++--------------------- regression/regression_nl_update.sh | 25 +- regression/regression_param.sh | 576 +------ regression/regression_test.sh | 110 +- regression/regression_test_enkf.sh | 53 +- regression/regression_var.sh | 198 +-- regression/rrfs_3denvar_glbens.sh | 291 ++++ ush/build.sh | 10 +- ush/detect_machine.sh | 10 - ush/module-setup.sh | 24 - ush/sub_orion | 168 ++ ush/sub_wcoss | 343 ---- ush/sub_wcoss2 | 176 ++ ush/sub_wcoss_c | 299 ---- ush/sub_wcoss_d | 345 ---- 43 files changed, 3006 insertions(+), 11084 deletions(-) delete mode 100755 regression/arw_binary.sh delete mode 100755 regression/arw_netcdf.sh create mode 100755 regression/global_3dvar.sh create mode 100755 regression/global_4denvar.sh delete mode 100755 regression/global_4denvar_T126.sh create mode 100755 regression/global_4dvar.sh delete mode 100755 regression/global_4dvar_T62.sh delete mode 100755 regression/global_C96_fv3aero.sh delete mode 100755 regression/global_C96_fv3aerorad.sh delete mode 100755 regression/global_T62.sh delete mode 100755 regression/global_T62_ozonly.sh create mode 100755 regression/global_enkf.sh delete mode 100755 regression/global_enkf_T62.sh delete mode 100755 regression/global_fv3_4denvar_C192.sh delete mode 100755 regression/global_fv3_4denvar_T126.sh delete mode 100755 regression/global_hybrid_T126.sh delete mode 100755 regression/global_lanczos_T62.sh delete mode 100755 regression/global_nemsio_T62.sh delete mode 100755 regression/nmm_binary.sh delete mode 100755 regression/nmm_netcdf.sh delete mode 100755 regression/nmmb_nems_4denvar.sh create mode 100755 regression/rrfs_3denvar_glbens.sh create mode 100755 ush/sub_orion delete mode 100755 ush/sub_wcoss create mode 100755 ush/sub_wcoss2 delete mode 100755 ush/sub_wcoss_c delete mode 100755 ush/sub_wcoss_d diff --git a/regression/CMakeLists.txt b/regression/CMakeLists.txt index 5082de2a0..cfbce04b4 100644 --- a/regression/CMakeLists.txt +++ b/regression/CMakeLists.txt @@ -38,19 +38,14 @@ endif() # GSI regression test names list(APPEND GSI_REG_TEST_NAMES - global_T62 global_T62_ozonly global_4dvar_T62 global_4denvar_T126 - global_fv3_4denvar_T126 global_fv3_4denvar_C192 global_lanczos_T62 - arw_netcdf arw_binary nmm_binary nmm_netcdf - nmmb_nems_4denvar - hwrf_nmm_d2 hwrf_nmm_d3 - rtma - netcdf_fv3_regional - global_C96_fv3aero global_C96_fv3aerorad + global_3dvar global_4dvar global_4denvar + hwrf_nmm_d2 hwrf_nmm_d3 rtma + rrfs_3denvar_glbens netcdf_fv3_regional ) # EnKF regression test names list(APPEND ENKF_REG_TEST_NAMES - global_enkf_T62 + global_enkf ) # Add GSI regression tests to list of tests diff --git a/regression/arw_binary.sh b/regression/arw_binary.sh deleted file mode 100755 index d2b5bf2d7..000000000 --- a/regression/arw_binary.sh +++ /dev/null @@ -1,313 +0,0 @@ - -set -x - -# Set analysis date -#adate=$adate_regional_arw_binary - -# Set guess/analysis (i/o) file format. Two -# option are available: binary or netcdf -io_format=binary -##io_format=netcdf - -if [[ "$io_format" = "binary" ]]; then - NETCDF=.false. - FORMAT=binary -elif [[ "$io_format" = "netcdf" ]]; then - NETCDF=.true. - FORMAT=netcdf -else - echo "***ERROR*** INVALID io_format = $io_format" - exit -fi - -# Set experiment name - -exp=$jobname - -# Set path/file for gsi executable -#gsiexec=$updat - -# Set resoltion and other dependent parameters -#export JCAP=62 -export LEVS=60 -export JCAP_B=$JCAP -if [[ "$io_format" = "binary" ]]; then - export LEVS=50 -elif [[ "$io_format" = "netcdf" ]]; then - export LEVS=30 -fi -export DELTIM=1200 - -# Set runtime and save directories -tmpdir=$tmpdir/tmpreg_arw_binary/${exp} -savdir=$savdir/outreg/arw_binary/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -CLEAN=NO -ncp=/bin/cp - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -prefixo=ndas.t18z -prefixa=ndas.t18z -suffix=tm06.bufr_d - -#datobs=$datobs_arw_binary/$adate -#datges=$datobs - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -chgrp rstprod $tmpdir -chmod 750 $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$arw_binary_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh arw_binary -else - . $scripts/regression_namelists_db.sh arw_binary -fi -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (regional only) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/anavinfo_arw_binary -if [[ "$io_format" = "binary" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -elif [[ "$io_format" = "netcdf" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -fi -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/nam_regional_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/nam_global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/nam_global_pcpinfo.txt -ozinfo=$fixgsi/nam_global_ozinfo.txt -errtable=$fixgsi/nam_errtable.r3dv -convinfo=$fixgsi/nam_regional_convinfo_reg_test.txt -mesonetuselist=$fixgsi/nam_mesonet_uselist.txt - -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf -### - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $mesonetuselist ./mesonetuselist -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $arw_binary_obs/${prefixo}.prepbufr.tm06 ./prepbufr -$ncp $arw_binary_obs/${prefixo}.satwnd.$suffix ./satwndbufr -$ncp $arw_binary_obs/${prefixo}.1bhrs3.$suffix ./hirs3bufr -$ncp $arw_binary_obs/${prefixo}.1bhrs4.$suffix ./hirs4bufr -$ncp $arw_binary_obs/${prefixo}.1bamua.$suffix ./amsuabufr -$ncp $arw_binary_obs/${prefixo}.1bamub.$suffix ./amsubbufr -$ncp $arw_binary_obs/${prefixo}.1bmhs.$suffix ./mhsbufr -$ncp $arw_binary_obs/${prefixo}.goesfv.$suffix ./gsnd1bufr -$ncp $arw_binary_obs/${prefixo}.airsev.$suffix ./airsbufr -$ncp $arw_binary_obs/${prefixo}.radwnd.$suffix ./radarbufr -if [[ "$io_format" = "netcdf" ]]; then - $ncp $arw_binary_obs/${prefixo}.nexrad.$suffix ./l2rwbufr -fi - -# Copy bias correction, sigma, and surface files -# -# *** NOTE: The regional gsi analysis is written to (over) -# the input guess field file (wrf_inout) -# -$ncp $arw_binary_obs/${prefixa}.satbias.tm06 ./satbias_in -$ncp $arw_binary_obs/${prefixa}.satang.tm06 ./satbias_angle -if [[ "$io_format" = "binary" ]]; then - $ncp $arw_binary_ges/wrfinput_d01_2010-07-24_12:00:00 ./wrf_inout -elif [[ "$io_format" = "netcdf" ]]; then - $ncp $arw_binary_ges/wrfinput_d01_arw_netcdf ./wrf_inout -fi - -cp wrf_inout wrf_ges - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir -chgrp rstprod $savdir -chmod 750 $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${arw_binary_adate} -$ncp wrf_inout $savdir/wrfanl.${arw_binary_adate} -$ncp satbias_out $savdir/biascr.${arw_binary_adate} - -# If desired, copy guess file to unique filename in $savdir -$ncp wrf_ges $savdir/wrfges.${arw_binary_adate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g10 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${arw_binary_adate} - compress diag_${type}_${string}.${arw_binary_adate} - $ncp diag_${type}_${string}.${arw_binary_adate}.Z $savdir/ - fi - done -done - -exit diff --git a/regression/arw_netcdf.sh b/regression/arw_netcdf.sh deleted file mode 100755 index 555625e9b..000000000 --- a/regression/arw_netcdf.sh +++ /dev/null @@ -1,316 +0,0 @@ - -set -x - -# Set analysis date -#adate=$adate_regional - -# Set guess/analysis (i/o) file format. Two -# option are available: binary or netcdf -##io_format=binary -io_format=netcdf - -if [[ "$io_format" = "binary" ]]; then - NETCDF=.false. - FORMAT=binary -elif [[ "$io_format" = "netcdf" ]]; then - NETCDF=.true. - FORMAT=netcdf -else - echo "***ERRROR*** INVALID io_format = $io_format" - exit -fi - -# Set experiment name - -exp=$jobname - -# Set path/file for gsi executable -#gsiexec=$updat - -# Set resoltion and other dependent parameters -#export JCAP=62 -export LEVS=60 -export JCAP_B=$JCAP -if [[ "$io_format" = "binary" ]]; then - export LEVS=50 -elif [[ "$io_format" = "netcdf" ]]; then - export LEVS=30 -fi -export DELTIM=1200 - -# Set runtime and save directories -tmpdir=$tmpdir/tmpreg_arw_netcdf/${exp} -savdir=$savdir/outreg/arw_netcdf/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -CLEAN=NO -ncp=/bin/cp - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -sdate=`echo $arw_netcdf_adate |cut -c1-8` -odate=`date +%Y%m%d%H -d "${arw_netcdf_adate:0:8} ${arw_netcdf_adate:8:2} + 6 hours"` -hha=`echo $arw_netcdf_adate | cut -c9-10` -hho=`echo $odate | cut -c9-10` -prefixo=ndas.t${hho}z -prefixa=ndas.t${hha}z -suffix=tm06.bufr_d - -#datobs=$datobs_arw_netcdf/$adate_regional_arw_netcdf -#datges=$datobs - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -chgrp rstprod $tmpdir -chmod 750 $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$arw_netcdf_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh arw_netcdf -else - . $scripts/regression_namelists_db.sh arw_netcdf -fi -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (regional only) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/anavinfo_arw_netcdf -if [[ "$io_format" = "binary" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -elif [[ "$io_format" = "netcdf" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -fi -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/nam_regional_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/nam_global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/nam_global_pcpinfo.txt -ozinfo=$fixgsi/nam_global_ozinfo.txt -errtable=$fixgsi/nam_errtable.r3dv -convinfo=$fixgsi/nam_regional_convinfo_reg_test.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -mesonetuselist=$fixgsi/nam_mesonet_uselist.txt - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $mesonetuselist ./mesonetuselist -#### -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $arw_netcdf_obs/${prefixo}.prepbufr.tm06 ./prepbufr -$ncp $arw_netcdf_obs/${prefixo}.satwnd.$suffix ./satwndbufr -$ncp $arw_netcdf_obs/${prefixo}.1bhrs3.$suffix ./hirs3bufr -$ncp $arw_netcdf_obs/${prefixo}.1bhrs4.$suffix ./hirs4bufr -$ncp $arw_netcdf_obs/${prefixo}.1bamua.$suffix ./amsuabufr -$ncp $arw_netcdf_obs/${prefixo}.1bamub.$suffix ./amsubbufr -$ncp $arw_netcdf_obs/${prefixo}.1bmhs.$suffix ./mhsbufr -$ncp $arw_netcdf_obs/${prefixo}.goesfv.$suffix ./gsnd1bufr -$ncp $arw_netcdf_obs/${prefixo}.airsev.$suffix ./airsbufr -$ncp $arw_netcdf_obs/${prefixo}.radwnd.$suffix ./radarbufr -if [[ "$io_format" = "netcdf" ]]; then - $ncp $arw_netcdf_obs/${prefixo}.nexrad.$suffix ./l2rwbufr -fi - -# Copy bias correction, sigma, and surface files -# -# *** NOTE: The regional gsi analysis is written to (over) -# the input guess field file (wrf_inout) -# -$ncp $arw_netcdf_obs/${prefixo}.satbias.tm06 ./satbias_in -$ncp $arw_netcdf_obs/${prefixo}.satang.tm06 ./satbias_angle -if [[ "$io_format" = "binary" ]]; then - $ncp $arw_netcdf_ges/wrfinput_d01_arw_binary ./wrf_inout -elif [[ "$io_format" = "netcdf" ]]; then - $ncp $arw_netcdf_ges/wrfout_d01_2008-05-11_12:00:00 ./wrf_inout -fi -cp wrf_inout wrf_ges - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir -chgrp rstprod $savdir -chmod 750 $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${arw_netcdf_adate} -$ncp wrf_inout $savdir/wrfanl.${arw_netcdf_adate} -$ncp satbias_out $savdir/biascr.${arw_netcdf_adate} - -# If desired, copy guess file to unique filename in $savdir -$ncp wrf_ges $savdir/wrfges.${arw_netcdf_adate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g10 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${arw_netcdf_adate} - compress diag_${type}_${string}.${arw_netcdf_adate} - $ncp diag_${type}_${string}.${arw_netcdf_adate}.Z $savdir/ - fi - done -done - -exit diff --git a/regression/global_3dvar.sh b/regression/global_3dvar.sh new file mode 100755 index 000000000..56f78ad38 --- /dev/null +++ b/regression/global_3dvar.sh @@ -0,0 +1,305 @@ +set -x + +# Set experiment name and analysis date + +exp=$jobname + +# Set the JCAP resolution which you want. +export JCAP=48 +export LEVS=127 +export JCAP_B=$JCAP + +# Set runtime directories +tmpdir=$tmpdir/$tmpregdir/${exp} + +# Specify GSI fixed field and data directories. +fixcrtm=${fixcrtm:-$CRTM_FIX} + + +# Set variables used in script +UNCOMPRESS=gunzip +CLEAN=NO +ncp=/bin/cp +nln="/bin/ln -fs" + + +# Given the requested resolution, set dependent resolution parameters +if [[ "$JCAP" = "96" ]]; then + export LONA=384 + export LATA=192 + export DELTIM=1200 +elif [[ "$JCAP" = "48" ]]; then + export LONA=192 + export LATA=96 + export DELTIM=1200 +else + echo "INVALID JCAP = $JCAP" + exit +fi +export NLON=$LONA +export NLAT=$((${LATA}+2)) + + +# Given the analysis date, compute the date from which the +# first guess comes. Extract cycle and set prefix and suffix +# for guess and observation data files +gdate=`date +%Y%m%d%H -d "${global_adate:0:8} ${global_adate:8:2} - 6 hours"` +PDYa=`echo $global_adate | cut -c1-8` +cyca=`echo $global_adate | cut -c9-10` +PDYg=`echo $gdate | cut -c1-8` +cycg=`echo $gdate | cut -c9-10` + +dumpobs=gdas +prefix_obs=${dumpobs}.t${cyca}z +prefix_ges=gdas.t${cycg}z +prefix_ens=gdas.t${cycg}z +suffix=tm00.bufr_d + +dumpges=gdas +COMROOTgfs=$casesdir/gfs/prod +datobs=$COMROOTgfs/$dumpobs.$PDYa/${cyca}/atmos +datges=$COMROOTgfs/$dumpges.$PDYg/${cycg}/atmos +datens=$COMROOTgfs/enkfgdas.$PDYg/${cycg}/atmos + + +# Set up $tmpdir +rm -rf $tmpdir +mkdir -p $tmpdir +cd $tmpdir + +# Make gsi namelist + +. $scripts/regression_nl_update.sh + +SETUP="$SETUP_update" +GRIDOPTS="$GRIDOPTS_update" +BKGVERR="$BKGVERR_update" +ANBKGERR="$ANBKERR_update" +JCOPTS="$JCOPTS_update" +STRONGOPTS="$STRONGOPTS_update" +OBSQC="$OBSQC_update" +OBSINPUT="$OBSINPUT_update" +SUPERRAD="$SUPERRAD_update" +SINGLEOB="$SINGLEOB_update" + +if [ "$debug" = ".false." ]; then + . $scripts/regression_namelists.sh global_3dvar +else + . $scripts/regression_namelists_db.sh global_3dvar +fi + +cat << EOF > gsiparm.anl + +$gsi_namelist + +EOF + +# Set fixed files +# berror = forecast model background error statistics +# specoef = CRTM spectral coefficients +# trncoef = CRTM transmittance coefficients +# emiscoef = CRTM coefficients for IR sea surface emissivity model +# aerocoef = CRTM coefficients for aerosol effects +# cldcoef = CRTM coefficients for cloud effects +# satinfo = text file with information about assimilation of brightness temperatures +# satangl = angle dependent bias correction file (fixed in time) +# pcpinfo = text file with information about assimilation of prepcipitation rates +# ozinfo = text file with information about assimilation of ozone data +# errtable = text file with obs error for conventional data (optional) +# convinfo = text file with information about assimilation of conventional data +# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) +# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) +# aeroinfo = text file with information about assimilation of aerosol data + +anavinfo=$fixgsi/global_anavinfo.l${LEVS}.txt +berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 +locinfo=$fixgsi/global_hybens_info.l${LEVS}.txt +satinfo=$fixgsi/global_satinfo.txt +scaninfo=$fixgsi/global_scaninfo.txt +satangl=$fixgsi/global_satangbias.txt +pcpinfo=$fixgsi/global_pcpinfo.txt +ozinfo=$fixgsi/global_ozinfo.txt +convinfo=$fixgsi/global_convinfo.txt +vqcdat=$fixgsi/vqctp001.dat +insituinfo=$fixgsi/global_insituinfo.txt +errtable=$fixgsi/prepobs_errtable.global +aeroinfo=$fixgsi/global_aeroinfo.txt +atmsbeaminfo=$fixgsi/atms_beamwidth.txt +cloudyinfo=$fixgsi/cloudy_radiance_info.txt + +emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin +emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin +emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin +emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin +emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin +emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin +emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin +emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin +emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin +aercoef=$fixcrtm/AerosolCoeff.bin +cldcoef=$fixcrtm/CloudCoeff.bin +#cldcoef=$fixcrtm/CloudCoeff.GFDLFV3.-109z-1.bin # use with crtm/2.4.0 + +# Only need this file for single obs test +bufrtable=$fixgsi/prepobs_prep.bufrtable + +# Only need this file for sst retrieval +bftab_sst=$fixgsi/bufrtab.012 + +# Copy executable and fixed files to $tmpdir +if [[ $exp == *"updat"* ]]; then + $ncp $gsiexec_updat ./gsi.x +elif [[ $exp == *"contrl"* ]]; then + $ncp $gsiexec_contrl ./gsi.x +fi + +$ncp $anavinfo ./anavinfo +$ncp $berror ./berror_stats +$ncp $locinfo ./hybens_info +$ncp $satinfo ./satinfo +$ncp $scaninfo ./scaninfo +$ncp $pcpinfo ./pcpinfo +$ncp $ozinfo ./ozinfo +$ncp $convinfo ./convinfo +$ncp $vqcdat ./vqctp001.dat +$ncp $insituinfo ./insituinfo +$ncp $errtable ./errtable +$ncp $aeroinfo ./aeroinfo +$ncp $atmsbeaminfo ./atms_beamwidth.txt +$ncp $cloudyinfo ./cloudy_radiance_info.txt + +$ncp $bufrtable ./prepobs_prep.bufrtable +$ncp $bftab_sst ./bftab_sstphr + +#If using correlated error, get the covariance files +if grep -q "Rcov" $anavinfo ; +then + if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; + then + $ncp ${fixgsi}/Rcov* $tmpdir + +# Correlated error utlizes mkl lapack. Found it necesary to fix the +# number of mkl threads to ensure reproducible results independent +# of the job configuration. + export MKL_NUM_THREADS=1 + + else + echo "Warning: Satellite error covariance files are missing." + echo "Check for the required Rcov files in " $ANAVINFO + exit 1 + fi +fi + +# Copy CRTM coefficient files based on entries in satinfo file +export CRTM_PATH="./crtm_coeffs/" +mkdir -p ${CRTM_PATH} +for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do + $nln $fixcrtm/${file}.SpcCoeff.bin ${CRTM_PATH}/${file}.SpcCoeff.bin + $nln $fixcrtm/${file}.TauCoeff.bin ${CRTM_PATH}/${file}.TauCoeff.bin +done +$nln $fixcrtm/amsua_metop-a_v2.SpcCoeff.bin ${CRTM_PATH}/amsua_metop-a_v2.SpcCoeff.bin + +$nln $emiscoef_IRwater ${CRTM_PATH}Nalli.IRwater.EmisCoeff.bin +$nln $emiscoef_IRice ${CRTM_PATH}NPOESS.IRice.EmisCoeff.bin +$nln $emiscoef_IRsnow ${CRTM_PATH}NPOESS.IRsnow.EmisCoeff.bin +$nln $emiscoef_IRland ${CRTM_PATH}NPOESS.IRland.EmisCoeff.bin +$nln $emiscoef_VISice ${CRTM_PATH}NPOESS.VISice.EmisCoeff.bin +$nln $emiscoef_VISland ${CRTM_PATH}NPOESS.VISland.EmisCoeff.bin +$nln $emiscoef_VISsnow ${CRTM_PATH}NPOESS.VISsnow.EmisCoeff.bin +$nln $emiscoef_VISwater ${CRTM_PATH}NPOESS.VISwater.EmisCoeff.bin +$nln $emiscoef_MWwater ${CRTM_PATH}FASTEM6.MWwater.EmisCoeff.bin +$nln $aercoef ${CRTM_PATH}AerosolCoeff.bin +$nln $cldcoef ${CRTM_PATH}CloudCoeff.bin + +# Copy observational data +$nln $datobs/${prefix_obs}.prepbufr ./prepbufr +$nln $datobs/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl +$nln $datobs/${prefix_obs}.nsstbufr ./nsstbufr +$nln $datobs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl +$nln $datobs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr +$nln $datobs/${prefix_obs}.satwnd.${suffix} ./satwndbufr +$nln $datobs/${prefix_obs}.hdob.${suffix} ./hdobbufr + +$nln $datobs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr +$nln $datobs/${prefix_obs}.gome.${suffix} ./gomebufr +$nln $datobs/${prefix_obs}.omi.${suffix} ./omibufr +$nln $datobs/${prefix_obs}.mls.${suffix} ./mlsbufr +$nln $datobs/${prefix_obs}.ompsn8.${suffix} ./ompsnpbufr +$nln $datobs/${prefix_obs}.ompst8.${suffix} ./ompstcbufr +$nln $datobs/${prefix_obs}.ompslp.${suffix} ./ompslpbufr + +$nln $datobs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.airsev.${suffix} ./airsbufr +$nln $datobs/${prefix_obs}.sevcsr.${suffix} ./seviribufr +$nln $datobs/${prefix_obs}.saphir.${suffix} ./saphirbufr +$nln $datobs/${prefix_obs}.avcsam.${suffix} ./avhambufr +$nln $datobs/${prefix_obs}.avcspm.${suffix} ./avhpmbufr +$nln $datobs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr +$nln $datobs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr +$nln $datobs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr +$nln $datobs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.mtiasi.${suffix} ./iasibufr +$nln $datobs/${prefix_obs}.esiasi.${suffix} ./iasibufrears +$nln $datobs/${prefix_obs}.iasidb.${suffix} ./iasibufr_db +$nln $datobs/${prefix_obs}.crisf4.${suffix} ./crisfsbufr +$nln $datobs/${prefix_obs}.escrsf.${suffix} ./crisfsbufrears +$nln $datobs/${prefix_obs}.crsfdb.${suffix} ./crisfsbufr_db +$nln $datobs/${prefix_obs}.ahicsr.${suffix} ./ahibufr +$nln $datobs/${prefix_obs}.gsrcsr.${suffix} ./abibufr +$nln $datobs/${prefix_obs}.sstvcw.${suffix} ./sstviirs + +$nln $datobs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr +$nln $datobs/${prefix_obs}.1bmsu.${suffix} ./msubufr +$nln $datobs/${prefix_obs}.gmi1cr.${suffix} ./gmibufr +$nln $datobs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr +$nln $datobs/${prefix_obs}.ssmisu.${suffix} ./ssmisbufr +$nln $datobs/${prefix_obs}.1bamua.${suffix} ./amsuabufr +$nln $datobs/${prefix_obs}.esamua.${suffix} ./amsuabufrears +$nln $datobs/${prefix_obs}.amuadb.${suffix} ./amsuabufr_db +$nln $datobs/${prefix_obs}.1bamub.${suffix} ./amsubbufr +$nln $datobs/${prefix_obs}.esamub.${suffix} ./amsubbufrears +$nln $datobs/${prefix_obs}.amubdb.${suffix} ./amsubbufr_db +$nln $datobs/${prefix_obs}.atms.${suffix} ./atmsbufr +$nln $datobs/${prefix_obs}.atmsdb.${suffix} ./atmsbufr_db +$nln $datobs/${prefix_obs}.esatms.${suffix} ./atmsbufrears + +# Do not process +## $nln $datobs/${prefix_obs}.amsre.${suffix} ./amsrebufr +## $nln $datobs/${prefix_obs}.amsr2.tm00.bufr_d ./amsr2bufr + +# Copy bias correction, atmospheric and surface files +$nln $datges/${prefix_ges}.abias ./satbias_in +$nln $datges/${prefix_ges}.abias_pc ./satbias_pc +$nln $datges/${prefix_ges}.abias_air ./aircftbias_in +$nln $datges/${prefix_ges}.radstat ./radstat.gdas + +member=mem001 +$nln $datens/$member/${prefix_ges}.sfcf003.nc ./sfcf03 +$nln $datens/$member/${prefix_ges}.sfcf006.nc ./sfcf06 +$nln $datens/$member/${prefix_ges}.sfcf009.nc ./sfcf09 + +$nln $datens/$member/${prefix_ges}.atmf003.nc ./sigf03 +$nln $datens/$member/${prefix_ges}.atmf006.nc ./sigf06 +$nln $datens/$member/${prefix_ges}.atmf009.nc ./sigf09 + +$nln $datens/${prefix_ens}.sfcf006.ensmean.nc ./sfcf06_anlgrid + + +listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` +for type in $listdiag; do + diag_file=`echo $type | cut -d',' -f1` + fname=`echo $diag_file | cut -d'.' -f1` + date=`echo $diag_file | cut -d'.' -f2` + $UNCOMPRESS $diag_file + fnameanl=$(echo $fname|sed 's/_ges//g') + mv ${fname}.${date} $fnameanl +done + +# Run GSI +echo "run gsi now" +eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" +rc=$? + +exit $rc diff --git a/regression/global_4denvar.sh b/regression/global_4denvar.sh new file mode 100755 index 000000000..7212b819e --- /dev/null +++ b/regression/global_4denvar.sh @@ -0,0 +1,327 @@ +set -x + +# Set experiment name and analysis date + +exp=$jobname + +# Set the JCAP resolution which you want. +export JCAP=48 +export LEVS=127 +export JCAP_B=96 + +# Set ensemble size +export NMEM_ENKF=10 + +# Set runtime directories +tmpdir=$tmpdir/$tmpregdir/${exp} + +# Specify GSI fixed field and data directories. +fixcrtm=${fixcrtm:-$CRTM_FIX} + + +# Set variables used in script +UNCOMPRESS=gunzip +CLEAN=NO +ncp=/bin/cp +nln="/bin/ln -fs" + + +# Given the requested resolution, set dependent resolution parameters +if [[ "$JCAP" = "96" ]]; then + export LONA=384 + export LATA=192 + export DELTIM=1200 +elif [[ "$JCAP" = "48" ]]; then + export LONA=192 + export LATA=96 + export DELTIM=1200 +else + echo "INVALID JCAP = $JCAP" + exit +fi +export NLON=$LONA +export NLAT=$((${LATA}+2)) + + +# Given the analysis date, compute the date from which the +# first guess comes. Extract cycle and set prefix and suffix +# for guess and observation data files +gdate=`date +%Y%m%d%H -d "${global_adate:0:8} ${global_adate:8:2} - 6 hours"` +PDYa=`echo $global_adate | cut -c1-8` +cyca=`echo $global_adate | cut -c9-10` +PDYg=`echo $gdate | cut -c1-8` +cycg=`echo $gdate | cut -c9-10` + +dumpobs=gdas +prefix_obs=${dumpobs}.t${cyca}z +prefix_ges=gdas.t${cycg}z +prefix_ens=gdas.t${cycg}z +suffix=tm00.bufr_d + +dumpges=gdas +COMROOTgfs=$casesdir/gfs/prod +datobs=$COMROOTgfs/$dumpobs.$PDYa/${cyca}/atmos +datges=$COMROOTgfs/$dumpges.$PDYg/${cycg}/atmos +datens=$COMROOTgfs/enkfgdas.$PDYg/${cycg}/atmos + + +# Set up $tmpdir +rm -rf $tmpdir +mkdir -p $tmpdir +cd $tmpdir + +# Make gsi namelist + +SETUP="" +GRIDOPTS="" +BKGVERR="" +ANBKGERR="" +JCOPTS="" +STRONGOPTS="" +OBSQC="" +OBSINPUT="" +SUPERRAD="" +SINGLEOB="" + +if [ "$debug" = ".false." ]; then + . $scripts/regression_namelists.sh global_4denvar +else + . $scripts/regression_namelists_db.sh global_4denvar +fi + +cat << EOF > gsiparm.anl + +$gsi_namelist + +EOF + +# Set fixed files +# berror = forecast model background error statistics +# specoef = CRTM spectral coefficients +# trncoef = CRTM transmittance coefficients +# emiscoef = CRTM coefficients for IR sea surface emissivity model +# aerocoef = CRTM coefficients for aerosol effects +# cldcoef = CRTM coefficients for cloud effects +# satinfo = text file with information about assimilation of brightness temperatures +# satangl = angle dependent bias correction file (fixed in time) +# pcpinfo = text file with information about assimilation of prepcipitation rates +# ozinfo = text file with information about assimilation of ozone data +# errtable = text file with obs error for conventional data (optional) +# convinfo = text file with information about assimilation of conventional data +# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) +# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) +# aeroinfo = text file with information about assimilation of aerosol data + +anavinfo=$fixgsi/global_anavinfo.l${LEVS}.txt +berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 +locinfo=$fixgsi/global_hybens_info.l${LEVS}.txt +satinfo=$fixgsi/global_satinfo.txt +scaninfo=$fixgsi/global_scaninfo.txt +satangl=$fixgsi/global_satangbias.txt +pcpinfo=$fixgsi/global_pcpinfo.txt +ozinfo=$fixgsi/global_ozinfo.txt +convinfo=$fixgsi/global_convinfo.txt +vqcdat=$fixgsi/vqctp001.dat +insituinfo=$fixgsi/global_insituinfo.txt +errtable=$fixgsi/prepobs_errtable.global +aeroinfo=$fixgsi/global_aeroinfo.txt +atmsbeaminfo=$fixgsi/atms_beamwidth.txt +cloudyinfo=$fixgsi/cloudy_radiance_info.txt + +emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin +emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin +emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin +emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin +emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin +emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin +emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin +emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin +emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin +aercoef=$fixcrtm/AerosolCoeff.bin +cldcoef=$fixcrtm/CloudCoeff.bin +#cldcoef=$fixcrtm/CloudCoeff.GFDLFV3.-109z-1.bin # use with crtm/2.4.0 + +# Only need this file for single obs test +bufrtable=$fixgsi/prepobs_prep.bufrtable + +# Only need this file for sst retrieval +bftab_sst=$fixgsi/bufrtab.012 + +# Copy executable and fixed files to $tmpdir +if [[ $exp == *"updat"* ]]; then + $ncp $gsiexec_updat ./gsi.x +elif [[ $exp == *"contrl"* ]]; then + $ncp $gsiexec_contrl ./gsi.x +fi + +$ncp $anavinfo ./anavinfo +$ncp $berror ./berror_stats +$ncp $locinfo ./hybens_info +$ncp $satinfo ./satinfo +$ncp $scaninfo ./scaninfo +$ncp $pcpinfo ./pcpinfo +$ncp $ozinfo ./ozinfo +$ncp $convinfo ./convinfo +$ncp $vqcdat ./vqctp001.dat +$ncp $insituinfo ./insituinfo +$ncp $errtable ./errtable +$ncp $aeroinfo ./aeroinfo +$ncp $atmsbeaminfo ./atms_beamwidth.txt +$ncp $cloudyinfo ./cloudy_radiance_info.txt + +$ncp $bufrtable ./prepobs_prep.bufrtable +$ncp $bftab_sst ./bftab_sstphr + +#If using correlated error, get the covariance files +if grep -q "Rcov" $anavinfo ; +then + if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; + then + $ncp ${fixgsi}/Rcov* $tmpdir + +# Correlated error utlizes mkl lapack. Found it necesary to fix the +# number of mkl threads to ensure reproducible results independent +# of the job configuration. + export MKL_NUM_THREADS=1 + + else + echo "Warning: Satellite error covariance files are missing." + echo "Check for the required Rcov files in " $ANAVINFO + exit 1 + fi +fi + +# Copy CRTM coefficient files based on entries in satinfo file +export CRTM_PATH="./crtm_coeffs/" +mkdir -p ${CRTM_PATH} +for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do + $nln $fixcrtm/${file}.SpcCoeff.bin ${CRTM_PATH}/${file}.SpcCoeff.bin + $nln $fixcrtm/${file}.TauCoeff.bin ${CRTM_PATH}/${file}.TauCoeff.bin +done +$nln $fixcrtm/amsua_metop-a_v2.SpcCoeff.bin ${CRTM_PATH}/amsua_metop-a_v2.SpcCoeff.bin + +$nln $emiscoef_IRwater ${CRTM_PATH}Nalli.IRwater.EmisCoeff.bin +$nln $emiscoef_IRice ${CRTM_PATH}NPOESS.IRice.EmisCoeff.bin +$nln $emiscoef_IRsnow ${CRTM_PATH}NPOESS.IRsnow.EmisCoeff.bin +$nln $emiscoef_IRland ${CRTM_PATH}NPOESS.IRland.EmisCoeff.bin +$nln $emiscoef_VISice ${CRTM_PATH}NPOESS.VISice.EmisCoeff.bin +$nln $emiscoef_VISland ${CRTM_PATH}NPOESS.VISland.EmisCoeff.bin +$nln $emiscoef_VISsnow ${CRTM_PATH}NPOESS.VISsnow.EmisCoeff.bin +$nln $emiscoef_VISwater ${CRTM_PATH}NPOESS.VISwater.EmisCoeff.bin +$nln $emiscoef_MWwater ${CRTM_PATH}FASTEM6.MWwater.EmisCoeff.bin +$nln $aercoef ${CRTM_PATH}AerosolCoeff.bin +$nln $cldcoef ${CRTM_PATH}CloudCoeff.bin + +# Copy observational data +$nln $datobs/${prefix_obs}.prepbufr ./prepbufr +$nln $datobs/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl +$nln $datobs/${prefix_obs}.nsstbufr ./nsstbufr +$nln $datobs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl +$nln $datobs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr +$nln $datobs/${prefix_obs}.satwnd.${suffix} ./satwndbufr +$nln $datobs/${prefix_obs}.hdob.${suffix} ./hdobbufr + +$nln $datobs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr +$nln $datobs/${prefix_obs}.gome.${suffix} ./gomebufr +$nln $datobs/${prefix_obs}.omi.${suffix} ./omibufr +$nln $datobs/${prefix_obs}.mls.${suffix} ./mlsbufr +$nln $datobs/${prefix_obs}.ompsn8.${suffix} ./ompsnpbufr +$nln $datobs/${prefix_obs}.ompst8.${suffix} ./ompstcbufr +$nln $datobs/${prefix_obs}.ompslp.${suffix} ./ompslpbufr + +$nln $datobs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.airsev.${suffix} ./airsbufr +$nln $datobs/${prefix_obs}.sevcsr.${suffix} ./seviribufr +$nln $datobs/${prefix_obs}.saphir.${suffix} ./saphirbufr +$nln $datobs/${prefix_obs}.avcsam.${suffix} ./avhambufr +$nln $datobs/${prefix_obs}.avcspm.${suffix} ./avhpmbufr +$nln $datobs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr +$nln $datobs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr +$nln $datobs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr +$nln $datobs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.mtiasi.${suffix} ./iasibufr +$nln $datobs/${prefix_obs}.esiasi.${suffix} ./iasibufrears +$nln $datobs/${prefix_obs}.iasidb.${suffix} ./iasibufr_db +$nln $datobs/${prefix_obs}.crisf4.${suffix} ./crisfsbufr +$nln $datobs/${prefix_obs}.escrsf.${suffix} ./crisfsbufrears +$nln $datobs/${prefix_obs}.crsfdb.${suffix} ./crisfsbufr_db +$nln $datobs/${prefix_obs}.ahicsr.${suffix} ./ahibufr +$nln $datobs/${prefix_obs}.gsrcsr.${suffix} ./abibufr +$nln $datobs/${prefix_obs}.sstvcw.${suffix} ./sstviirs + +$nln $datobs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr +$nln $datobs/${prefix_obs}.1bmsu.${suffix} ./msubufr +$nln $datobs/${prefix_obs}.gmi1cr.${suffix} ./gmibufr +$nln $datobs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr +$nln $datobs/${prefix_obs}.ssmisu.${suffix} ./ssmisbufr +$nln $datobs/${prefix_obs}.1bamua.${suffix} ./amsuabufr +$nln $datobs/${prefix_obs}.esamua.${suffix} ./amsuabufrears +$nln $datobs/${prefix_obs}.amuadb.${suffix} ./amsuabufr_db +$nln $datobs/${prefix_obs}.1bamub.${suffix} ./amsubbufr +$nln $datobs/${prefix_obs}.esamub.${suffix} ./amsubbufrears +$nln $datobs/${prefix_obs}.amubdb.${suffix} ./amsubbufr_db +$nln $datobs/${prefix_obs}.atms.${suffix} ./atmsbufr +$nln $datobs/${prefix_obs}.atmsdb.${suffix} ./atmsbufr_db +$nln $datobs/${prefix_obs}.esatms.${suffix} ./atmsbufrears + +# Do not process +## $nln $datobs/${prefix_obs}.amsre.${suffix} ./amsrebufr +## $nln $datobs/${prefix_obs}.amsr2.tm00.bufr_d ./amsr2bufr + +# Copy bias correction, atmospheric and surface files +$nln $datges/${prefix_ges}.abias ./satbias_in +$nln $datges/${prefix_ges}.abias_pc ./satbias_pc +$nln $datges/${prefix_ges}.abias_air ./aircftbias_in +$nln $datges/${prefix_ges}.radstat ./radstat.gdas + +$nln $datges/${prefix_ges}.sfcf003.nc ./sfcf03 +$nln $datges/${prefix_ges}.sfcf004.nc ./sfcf04 +$nln $datges/${prefix_ges}.sfcf005.nc ./sfcf05 +$nln $datges/${prefix_ges}.sfcf006.nc ./sfcf06 +$nln $datges/${prefix_ges}.sfcf007.nc ./sfcf07 +$nln $datges/${prefix_ges}.sfcf008.nc ./sfcf08 +$nln $datges/${prefix_ges}.sfcf009.nc ./sfcf09 + +$nln $datges/${prefix_ges}.atmf003.nc ./sigf03 +$nln $datges/${prefix_ges}.atmf004.nc ./sigf04 +$nln $datges/${prefix_ges}.atmf005.nc ./sigf05 +$nln $datges/${prefix_ges}.atmf006.nc ./sigf06 +$nln $datges/${prefix_ges}.atmf007.nc ./sigf07 +$nln $datges/${prefix_ges}.atmf008.nc ./sigf08 +$nln $datges/${prefix_ges}.atmf009.nc ./sigf09 + +$nln $datens/${prefix_ens}.sfcf006.ensmean.nc ./sfcf06_anlgrid + +export ENS_PATH='./ensemble_data/' +mkdir -p ${ENS_PATH} +flist="03 04 05 06 07 08 09" +for fh in $flist; do + sigens=${prefix_ens}.atmf0${fh}.nc + imem=1 + while [[ $imem -le $NMEM_ENKF ]]; do + member="mem"`printf %03i $imem` + $nln $datens/$member/$sigens ${ENS_PATH}sigf${fh}_ens_${member} + (( imem = $imem + 1 )) + done +done + + +listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` +for type in $listdiag; do + diag_file=`echo $type | cut -d',' -f1` + fname=`echo $diag_file | cut -d'.' -f1` + date=`echo $diag_file | cut -d'.' -f2` + $UNCOMPRESS $diag_file + fnameanl=$(echo $fname|sed 's/_ges//g') + mv $fname.$date $fnameanl +done + +# Run GSI +cd $tmpdir +echo "run gsi now" +eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout 2>&1" +rc=$? + +exit $rc diff --git a/regression/global_4denvar_T126.sh b/regression/global_4denvar_T126.sh deleted file mode 100755 index d03d7d928..000000000 --- a/regression/global_4denvar_T126.sh +++ /dev/null @@ -1,415 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export JCAP=126 -export LEVS=64 -export JCAP_B=126 -export JCAP_EN=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}/${exp} - -# Specify GSI fixed field and data directories. -#fixcrtm=${fixcrtm:-$CRTM_FIX} - -#datobs=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/obs -#datges=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/ges -#datens=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/ens - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "670" ]]; then - export LONA=1344 - export LATA=672 - export DELTIM=100 - export resol=1 -elif [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=384 - export LATA=190 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_4denvar_T126_adate:0:8} ${global_4denvar_T126_adate:8:2} - 6 hours"` -yyg=`echo $gdate | cut -c1-8` -hhg=`echo $gdate | cut -c9-10` -yya=`echo $global_4denvar_T126_adate | cut -c1-8` -hha=`echo $global_4denvar_T126_adate | cut -c9-10` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_4denvar_T126_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_4denvar_T126_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_4denvar_T126_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_4denvar_T126_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_4denvar_T126 -else - . $scripts/regression_namelists_db.sh global_4denvar_T126 -fi - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -insituinfo=$fixgsi/global_insituinfo.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -anavinfo=$fixgsi/global_anavinfo.l64.txt -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -errtable=$fixgsi/prepobs_errtable.global -hybens_info=$fixgsi/global_hybens_info.l64.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $insituinfo ./insituinfo -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $hybens_info ./hybens_info -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Copy observational data to $tmpdir -$ncp $global_4denvar_T126_datobs/prepqc.gdas.$global_4denvar_T126_adate ./prepbufr -$ncp $global_4denvar_T126_datobs/nsstbufr.gdas.$global_4denvar_T126_adate ./nsstbufr -$ncp $global_4denvar_T126_datobs/prepbufr.acft_profiles.gdas.$global_4denvar_T126_adate ./prepbufr_profl -$ncp $global_4denvar_T126_datobs/satwnd.gdas.$global_4denvar_T126_adate ./satwndbufr -$ncp $global_4denvar_T126_datobs/gpsro.gdas.$global_4denvar_T126_adate ./gpsrobufr -$ncp $global_4denvar_T126_datobs/sptrmm.gdas.$global_4denvar_T126_adate ./tmirrbufr -$ncp $global_4denvar_T126_datobs/osbuv8.gdas.$global_4denvar_T126_adate ./sbuvbufr -$ncp $global_4denvar_T126_datobs/gome.gdas.$global_4denvar_T126_adate ./gomebufr -$ncp $global_4denvar_T126_datobs/omi.gdas.$global_4denvar_T126_adate ./omibufr -$ncp $global_4denvar_T126_datobs/tcvitl.gdas.$global_4denvar_T126_adate ./tcvitl -$ncp $global_4denvar_T126_datobs/goesfv.gdas.$global_4denvar_T126_adate ./gsnd1bufr -$ncp $global_4denvar_T126_datobs/1bamua.gdas.$global_4denvar_T126_adate ./amsuabufr -$ncp $global_4denvar_T126_datobs/1bamub.gdas.$global_4denvar_T126_adate ./amsubbufr -$ncp $global_4denvar_T126_datobs/1bhrs3.gdas.$global_4denvar_T126_adate ./hirs3bufr -$ncp $global_4denvar_T126_datobs/1bhrs4.gdas.$global_4denvar_T126_adate ./hirs4bufr -$ncp $global_4denvar_T126_datobs/airsev.gdas.$global_4denvar_T126_adate ./airsbufr -$ncp $global_4denvar_T126_datobs/mtiasi.gdas.$global_4denvar_T126_adate ./iasibufr -$ncp $global_4denvar_T126_datobs/esamua.gdas.$global_4denvar_T126_adate ./amsuabufrears -$ncp $global_4denvar_T126_datobs/esamub.gdas.$global_4denvar_T126_adate ./amsubbufrears -$ncp $global_4denvar_T126_datobs/eshrs3.gdas.$global_4denvar_T126_adate ./hirs3bufrears -$ncp $global_4denvar_T126_datobs/avcsam.gdas.$global_4denvar_T126_adate ./avhambufr -$ncp $global_4denvar_T126_datobs/avcspm.gdas.$global_4denvar_T126_adate ./avhpmbufr -if [ "$debug" = ".false." ]; then - $ncp $global_4denvar_T126_datobs/esiasi.gdas.$global_4denvar_T126_adate ./iasibufrears -fi -$ncp $global_4denvar_T126_datobs/iasidb.gdas.$global_4denvar_T126_adate ./iasibufr_db -$ncp $global_4denvar_T126_datobs/gmi1cr.gdas.$global_4denvar_T126_adate ./gmibufr -$ncp $global_4denvar_T126_datobs/saphir.gdas.$global_4denvar_T126_adate ./saphirbufr -$ncp $global_4denvar_T126_datobs/cris.gdas.$global_4denvar_T126_adate ./crisbufr -$ncp $global_4denvar_T126_datobs/crisdb.gdas.$global_4denvar_T126_adate ./crisbufr_db -$ncp $global_4denvar_T126_datobs/crisf4.gdas.$global_4denvar_T126_adate ./crisfsbufr -$ncp $global_4denvar_T126_datobs/crisf4db.gdas.$global_4denvar_T126_adate ./crisfsbufr_db -$ncp $global_4denvar_T126_datobs/sevcsr.gdas.$global_4denvar_T126_adate ./seviribufr -$ncp $global_4denvar_T126_datobs/atms.gdas.$global_4denvar_T126_adate ./atmsbufr -$ncp $global_4denvar_T126_datobs/atmsdb.gdas.$global_4denvar_T126_adate ./atmsbufr_db -$ncp $global_4denvar_T126_datobs/ssmisu.gdas.$global_4denvar_T126_adate ./ssmisbufr -$ncp $global_4denvar_T126_datobs/abicsr.gdas.$global_4denvar_T126_adate ./abibufr -$ncp $global_4denvar_T126_datobs/ahicsr.gdas.$global_4denvar_T126_adate ./ahibufr - - -# Copy bias correction, atmospheric and surface files -$ncp $global_4denvar_T126_datges/biascr.gdas.$gdate ./satbias_in -$ncp $global_4denvar_T126_datges/biascr_pc.gdas.${gdate} ./satbias_pc -$ncp $global_4denvar_T126_datges/aircraft_t_bias.gdas.$gdate ./aircftbias_in -$ncp $global_4denvar_T126_datges/radstat.gdas.$gdate ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -$ncp $global_4denvar_T126_datges/sfnf03.gdas.$gdate ./sfcf03 -$ncp $global_4denvar_T126_datges/sfnf04.gdas.$gdate ./sfcf04 -$ncp $global_4denvar_T126_datges/sfnf05.gdas.$gdate ./sfcf05 -$ncp $global_4denvar_T126_datges/sfnf06.gdas.$gdate ./sfcf06 -$ncp $global_4denvar_T126_datges/sfnf07.gdas.$gdate ./sfcf07 -$ncp $global_4denvar_T126_datges/sfnf08.gdas.$gdate ./sfcf08 -$ncp $global_4denvar_T126_datges/sfnf09.gdas.$gdate ./sfcf09 - -$ncp $global_4denvar_T126_datges/nsnf03.gdas.$gdate ./nstf03 -$ncp $global_4denvar_T126_datges/nsnf04.gdas.$gdate ./nstf04 -$ncp $global_4denvar_T126_datges/nsnf05.gdas.$gdate ./nstf05 -$ncp $global_4denvar_T126_datges/nsnf06.gdas.$gdate ./nstf06 -$ncp $global_4denvar_T126_datges/nsnf07.gdas.$gdate ./nstf07 -$ncp $global_4denvar_T126_datges/nsnf08.gdas.$gdate ./nstf08 -$ncp $global_4denvar_T126_datges/nsnf09.gdas.$gdate ./nstf09 - -$ncp $global_4denvar_T126_datges/gfngm3.gdas.$global_4denvar_T126_adate ./sigf03 -$ncp $global_4denvar_T126_datges/gfngm2.gdas.$global_4denvar_T126_adate ./sigf04 -$ncp $global_4denvar_T126_datges/gfngm1.gdas.$global_4denvar_T126_adate ./sigf05 -$ncp $global_4denvar_T126_datges/gfnges.gdas.$global_4denvar_T126_adate ./sigf06 -$ncp $global_4denvar_T126_datges/gfngp1.gdas.$global_4denvar_T126_adate ./sigf07 -$ncp $global_4denvar_T126_datges/gfngp2.gdas.$global_4denvar_T126_adate ./sigf08 -$ncp $global_4denvar_T126_datges/gfngp3.gdas.$global_4denvar_T126_adate ./sigf09 - -$ncp $global_4denvar_T126_datges/sfcgcy.gdas.$global_4denvar_T126_adate ./sfcgcy - -list="001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020" - -for file in $list; do -## ln -s $global_4denvar_T126_datges=/sigf06s_${gdate}_mem${file}_t${JCAP_EN} ./sigf06_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr03s_mem${file} ./sigf03_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr04s_mem${file} ./sigf04_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr05s_mem${file} ./sigf05_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr06s_mem${file} ./sigf06_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr07s_mem${file} ./sigf07_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr08s_mem${file} ./sigf08_ens_mem${file} - ln -s $global_4denvar_T126_datges/sfg_${gdate}_fhr09s_mem${file} ./sigf09_ens_mem${file} -done - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/global_4dvar.sh b/regression/global_4dvar.sh new file mode 100755 index 000000000..cac0d28e6 --- /dev/null +++ b/regression/global_4dvar.sh @@ -0,0 +1,338 @@ +set -x + +# Set experiment name and analysis date + +exp=$jobname + +# Set the JCAP resolution which you want. +export JCAP=48 +export LEVS=127 +export JCAP_B=48 + +# Set runtime directories +tmpdir=$tmpdir/$tmpregdir/${exp} + +# Specify GSI fixed field and data directories. +fixcrtm=${fixcrtm:-$CRTM_FIX} + + +# Set variables used in script +UNCOMPRESS=gunzip +CLEAN=NO +ncp=/bin/cp +nln="/bin/ln -fs" + + +# Given the requested resolution, set dependent resolution parameters +if [[ "$JCAP" = "96" ]]; then + export LONA=384 + export LATA=192 + export DELTIM=1200 +elif [[ "$JCAP" = "48" ]]; then + export LONA=192 + export LATA=96 + export DELTIM=1200 +else + echo "INVALID JCAP = $JCAP" + exit +fi +export NLON=$LONA +export NLAT=$((${LATA}+2)) + + +# Given the analysis date, compute the date from which the +# first guess comes. Extract cycle and set prefix and suffix +# for guess and observation data files +gdate=`date +%Y%m%d%H -d "${global_adate:0:8} ${global_adate:8:2} - 6 hours"` +PDYa=`echo $global_adate | cut -c1-8` +cyca=`echo $global_adate | cut -c9-10` +PDYg=`echo $gdate | cut -c1-8` +cycg=`echo $gdate | cut -c9-10` + +dumpobs=gdas +prefix_obs=${dumpobs}.t${cyca}z +prefix_ges=gdas.t${cycg}z +prefix_ens=gdas.t${cycg}z +suffix=tm00.bufr_d + +dumpges=gdas +COMROOTgfs=$casesdir/gfs/prod +datobs=$COMROOTgfs/$dumpobs.$PDYa/${cyca}/atmos +datges=$COMROOTgfs/$dumpges.$PDYg/${cycg}/atmos +datens=$COMROOTgfs/enkfgdas.$PDYg/${cycg}/atmos + + +# Set up $tmpdir +rm -rf $tmpdir +mkdir -p $tmpdir +cd $tmpdir + +# Make gsi namelist + +SETUP="" +GRIDOPTS="" +BKGVERR="" +ANBKGERR="" +JCOPTS="" +STRONGOPTS="" +OBSQC="" +OBSINPUT="" +SUPERRAD="" +SINGLEOB="" + + +# Set fixed files +# berror = forecast model background error statistics +# specoef = CRTM spectral coefficients +# trncoef = CRTM transmittance coefficients +# emiscoef = CRTM coefficients for IR sea surface emissivity model +# aerocoef = CRTM coefficients for aerosol effects +# cldcoef = CRTM coefficients for cloud effects +# satinfo = text file with information about assimilation of brightness temperatures +# satangl = angle dependent bias correction file (fixed in time) +# pcpinfo = text file with information about assimilation of prepcipitation rates +# ozinfo = text file with information about assimilation of ozone data +# errtable = text file with obs error for conventional data (optional) +# convinfo = text file with information about assimilation of conventional data +# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) +# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) +# aeroinfo = text file with information about assimilation of aerosol data + +anavinfo=$fixgsi/global_anavinfo_qlqi.l${LEVS}.txt +berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 +locinfo=$fixgsi/global_hybens_info.l${LEVS}.txt +satinfo=$fixgsi/global_satinfo.txt +scaninfo=$fixgsi/global_scaninfo.txt +satangl=$fixgsi/global_satangbias.txt +pcpinfo=$fixgsi/global_pcpinfo.txt +ozinfo=$fixgsi/global_ozinfo.txt +convinfo=$fixgsi/global_convinfo.txt +vqcdat=$fixgsi/vqctp001.dat +insituinfo=$fixgsi/global_insituinfo.txt +errtable=$fixgsi/prepobs_errtable.global +aeroinfo=$fixgsi/global_aeroinfo.txt +atmsbeaminfo=$fixgsi/atms_beamwidth.txt +cloudyinfo=$fixgsi/cloudy_radiance_info.txt + +emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin +emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin +emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin +emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin +emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin +emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin +emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin +emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin +emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin +aercoef=$fixcrtm/AerosolCoeff.bin +cldcoef=$fixcrtm/CloudCoeff.bin +#cldcoef=$fixcrtm/CloudCoeff.GFDLFV3.-109z-1.bin # use with crtm/2.4.0 + +# Only need this file for single obs test +bufrtable=$fixgsi/prepobs_prep.bufrtable + +# Only need this file for sst retrieval +bftab_sst=$fixgsi/bufrtab.012 + +# Copy executable and fixed files to $tmpdir +if [[ $exp == *"updat"* ]]; then + $ncp $gsiexec_updat ./gsi.x +elif [[ $exp == *"contrl"* ]]; then + $ncp $gsiexec_contrl ./gsi.x +fi + +$ncp $anavinfo ./anavinfo +$ncp $berror ./berror_stats +$ncp $locinfo ./hybens_info +$ncp $satinfo ./satinfo +$ncp $scaninfo ./scaninfo +##$ncp $satangl ./satbias_angle +$ncp $pcpinfo ./pcpinfo +$ncp $ozinfo ./ozinfo +$ncp $convinfo ./convinfo +$ncp $vqcdat ./vqctp001.dat +$ncp $insituinfo ./insituinfo +$ncp $errtable ./errtable +$ncp $aeroinfo ./aeroinfo +$ncp $atmsbeaminfo ./atms_beamwidth.txt +$ncp $cloudyinfo ./cloudy_radiance_info.txt + +$ncp $bufrtable ./prepobs_prep.bufrtable +$ncp $bftab_sst ./bftab_sstphr + +#If using correlated error, get the covariance files +if grep -q "Rcov" $anavinfo ; +then + if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; + then + $ncp ${fixgsi}/Rcov* $tmpdir + +# Correlated error utlizes mkl lapack. Found it necesary to fix the +# number of mkl threads to ensure reproducible results independent +# of the job configuration. + export MKL_NUM_THREADS=1 + + else + echo "Warning: Satellite error covariance files are missing." + echo "Check for the required Rcov files in " $ANAVINFO + exit 1 + fi +fi + +# Copy CRTM coefficient files based on entries in satinfo file +export CRTM_PATH="./crtm_coeffs/" +mkdir -p ${CRTM_PATH} +for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do + $nln $fixcrtm/${file}.SpcCoeff.bin ${CRTM_PATH}/${file}.SpcCoeff.bin + $nln $fixcrtm/${file}.TauCoeff.bin ${CRTM_PATH}/${file}.TauCoeff.bin +done +$nln $fixcrtm/amsua_metop-a_v2.SpcCoeff.bin ${CRTM_PATH}/amsua_metop-a_v2.SpcCoeff.bin + +$nln $emiscoef_IRwater ${CRTM_PATH}Nalli.IRwater.EmisCoeff.bin +$nln $emiscoef_IRice ${CRTM_PATH}NPOESS.IRice.EmisCoeff.bin +$nln $emiscoef_IRsnow ${CRTM_PATH}NPOESS.IRsnow.EmisCoeff.bin +$nln $emiscoef_IRland ${CRTM_PATH}NPOESS.IRland.EmisCoeff.bin +$nln $emiscoef_VISice ${CRTM_PATH}NPOESS.VISice.EmisCoeff.bin +$nln $emiscoef_VISland ${CRTM_PATH}NPOESS.VISland.EmisCoeff.bin +$nln $emiscoef_VISsnow ${CRTM_PATH}NPOESS.VISsnow.EmisCoeff.bin +$nln $emiscoef_VISwater ${CRTM_PATH}NPOESS.VISwater.EmisCoeff.bin +$nln $emiscoef_MWwater ${CRTM_PATH}FASTEM6.MWwater.EmisCoeff.bin +$nln $aercoef ${CRTM_PATH}AerosolCoeff.bin +$nln $cldcoef ${CRTM_PATH}CloudCoeff.bin + +# Copy observational data +$nln $datobs/${prefix_obs}.prepbufr ./prepbufr +$nln $datobs/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl +$nln $datobs/${prefix_obs}.nsstbufr ./nsstbufr +$nln $datobs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl +$nln $datobs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr +$nln $datobs/${prefix_obs}.satwnd.${suffix} ./satwndbufr +$nln $datobs/${prefix_obs}.hdob.${suffix} ./hdobbufr + +$nln $datobs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr +$nln $datobs/${prefix_obs}.gome.${suffix} ./gomebufr +$nln $datobs/${prefix_obs}.omi.${suffix} ./omibufr +$nln $datobs/${prefix_obs}.mls.${suffix} ./mlsbufr +$nln $datobs/${prefix_obs}.ompsn8.${suffix} ./ompsnpbufr +$nln $datobs/${prefix_obs}.ompst8.${suffix} ./ompstcbufr +$nln $datobs/${prefix_obs}.ompslp.${suffix} ./ompslpbufr + +$nln $datobs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.airsev.${suffix} ./airsbufr +$nln $datobs/${prefix_obs}.sevcsr.${suffix} ./seviribufr +$nln $datobs/${prefix_obs}.saphir.${suffix} ./saphirbufr +$nln $datobs/${prefix_obs}.avcsam.${suffix} ./avhambufr +$nln $datobs/${prefix_obs}.avcspm.${suffix} ./avhpmbufr +$nln $datobs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr +$nln $datobs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr +$nln $datobs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr +$nln $datobs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears +$nln $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db +$nln $datobs/${prefix_obs}.mtiasi.${suffix} ./iasibufr +$nln $datobs/${prefix_obs}.esiasi.${suffix} ./iasibufrears +$nln $datobs/${prefix_obs}.iasidb.${suffix} ./iasibufr_db +$nln $datobs/${prefix_obs}.crisf4.${suffix} ./crisfsbufr +$nln $datobs/${prefix_obs}.escrsf.${suffix} ./crisfsbufrears +$nln $datobs/${prefix_obs}.crsfdb.${suffix} ./crisfsbufr_db +$nln $datobs/${prefix_obs}.ahicsr.${suffix} ./ahibufr +$nln $datobs/${prefix_obs}.gsrcsr.${suffix} ./abibufr +$nln $datobs/${prefix_obs}.sstvcw.${suffix} ./sstviirs + +$nln $datobs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr +$nln $datobs/${prefix_obs}.1bmsu.${suffix} ./msubufr +$nln $datobs/${prefix_obs}.gmi1cr.${suffix} ./gmibufr +$nln $datobs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr +$nln $datobs/${prefix_obs}.ssmisu.${suffix} ./ssmisbufr +$nln $datobs/${prefix_obs}.1bamua.${suffix} ./amsuabufr +$nln $datobs/${prefix_obs}.esamua.${suffix} ./amsuabufrears +$nln $datobs/${prefix_obs}.amuadb.${suffix} ./amsuabufr_db +$nln $datobs/${prefix_obs}.1bamub.${suffix} ./amsubbufr +$nln $datobs/${prefix_obs}.esamub.${suffix} ./amsubbufrears +$nln $datobs/${prefix_obs}.amubdb.${suffix} ./amsubbufr_db +$nln $datobs/${prefix_obs}.atms.${suffix} ./atmsbufr +$nln $datobs/${prefix_obs}.atmsdb.${suffix} ./atmsbufr_db +$nln $datobs/${prefix_obs}.esatms.${suffix} ./atmsbufrears + +# Do not process +## $nln $datobs/${prefix_obs}.amsre.${suffix} ./amsrebufr +## $nln $datobs/${prefix_obs}.amsr2.tm00.bufr_d ./amsr2bufr + +# Copy bias correction, atmospheric and surface files +##$nln $datges/${prefix_ges}.abias ./satbias_in +##$nln $datges/${prefix_ges}.abias_pc ./satbias_pc +##$nln $datges/${prefix_ges}.abias_air ./aircftbias_in + + +#$nln $datges/${prefix_ges}.abias.4dvar ./satbias_in +$nln $datges/${prefix_ges}.satang.4dvar ./satbias_angle + +$nln $datges/${prefix_ges}.radstat ./radstat.gdas + +member=mem001 +$nln $datens/$member/${prefix_ges}.sfcf003.nc ./sfcf03 +##$nln $datens/$member/${prefix_ges}.sfcf004.nc ./sfcf04 +##$nln $datens/$member/${prefix_ges}.sfcf005.nc ./sfcf05 +$nln $datens/$member/${prefix_ges}.sfcf006.nc ./sfcf06 +##$nln $datens/$member/${prefix_ges}.sfcf007.nc ./sfcf07 +##$nln $datens/$member/${prefix_ges}.sfcf008.nc ./sfcf08 +$nln $datens/$member/${prefix_ges}.sfcf009.nc ./sfcf09 + +$nln $datens/$member/${prefix_ges}.atmf003.nc ./sigf03 +##$nln $datens/$member/${prefix_ges}.atmf004.nc ./sigf04 +##$nln $datens/$member/${prefix_ges}.atmf005.nc ./sigf05 +$nln $datens/$member/${prefix_ges}.atmf006.nc ./sigf06 +##$nln $datens/$member/${prefix_ges}.atmf007.nc ./sigf07 +##$nln $datens/$member/${prefix_ges}.atmf008.nc ./sigf08 +$nln $datens/$member/${prefix_ges}.atmf009.nc ./sigf09 + +$nln $datens/${prefix_ens}.sfcf006.ensmean.nc ./sfcf06_anlgrid + +listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` +for type in $listdiag; do + diag_file=`echo $type | cut -d',' -f1` + fname=`echo $diag_file | cut -d'.' -f1` + date=`echo $diag_file | cut -d'.' -f2` + $UNCOMPRESS $diag_file + fnameanl=$(echo $fname|sed 's/_ges//g') + mv $fname.$date $fnameanl +done + + +# Run GSI in observer mode +SETUP="l4dvar=.true.,jiterstart=1,lobserver=.true.,iwrtinc=1,nhr_assimilation=6,nhr_obsbin=1," +if [ "$debug" = ".false." ]; then + . $scripts/regression_namelists.sh global_lanczos +else + . $scripts/regression_namelists_db.sh global_lanczos +fi +rm gsiparm.anl +cat << EOF > gsiparm.anl +$gsi_namelist +EOF +cp gsiparm.anl gsiparm.anl.obsvr + +echo "run gsi observer" +eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout.obsvr 2>&1" +ra=$? + +# Run gsi identity model 4dvar under Parallel Operating Environment (poe) on NCEP IBM +rm -f siganl sfcanl.gsi satbias_out fort.2* +rm -rf dir.0* + +# Create namelist for identity model 4dvar run +SETUP="l4dvar=.true.,jiterstart=1,nhr_assimilation=6,nhr_obsbin=1,idmodel=.true.,iwrtinc=1,lanczosave=.true.," +if [ "$debug" = ".false." ]; then + . $scripts/regression_namelists.sh global_lanczos +else + . $scripts/regression_namelists_db.sh global_lanczos +fi +rm gsiparm.anl +cat < gsiparm.anl +$gsi_namelist +EOF + +echo "run gsi 4dvar" +eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout 2>&1" +rb=$? +rc=$((ra+rb)) +exit $rc diff --git a/regression/global_4dvar_T62.sh b/regression/global_4dvar_T62.sh deleted file mode 100755 index 46aed6131..000000000 --- a/regression/global_4dvar_T62.sh +++ /dev/null @@ -1,439 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#gsiexec=$updat - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -#export JCAP=62 -export LEVS=64 -export JCAP_B=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/4dvar_out${JCAP}/sigmap/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_4dvar_T62_adate:0:8} ${global_4dvar_T62_adate:8:2} - 6 hours"` -hha=`echo $global_4dvar_T62_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gdas1.t${hha}z -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gdas${resol}.t${hhg}z -prefix_atm=gdas${resol}.t${hha}z -prefixg=gdas1.t${hhg}z -suffix=tm00.bufr_d - -adate0=`echo $global_4dvar_T62_adate | cut -c1-8` -gdate0=`echo $gdate | cut -c1-8` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# Make gsi namelist - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_4dvar_T62_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_4dvar_T62_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_4dvar_T62_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_4dvar_T62_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -. $scripts/regression_nl_update.sh - -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -# Set variables for requested minimization (pcgsoi or lanczos) -JCOPTS="ljcpdry=.false.," -OBSQC="noiqc=.false.," -SETUPmin="miter=1,niter(1)=50,niter_no_qc(1)=500," -SETUPlan="" -#export minimization=${minimization:-"pcgsoi"} -#if [ "$minimization" = "lanczos" ]; then -# SETUPlan="lsqrtb=.true.,lcongrad=.true.,ltlint=.true.,ladtest=.true.,lgrtest=.false.," -# HYBENS_GLOBAL=".false." -#fi - -# Create namelist for observer run -export nhr_obsbin=${nhr_obsbin:-1} -SETUPobs="l4dvar=.true.,jiterstart=1,lobserver=.true.,iwrtinc=1,nhr_assimilation=6,nhr_obsbin=$nhr_obsbin," -#SETUP="$SETUPmin $SETUPlan $SETUPobs $SETUP_update" -SETUP="$SETUPmin $SETUPobs $SETUP_update" - -if [ "$minimization" = "lanczos" ]; then - namelist_name=global_lanczos_T62 -else - namelist_name=global_T62 -fi - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh $namelist_name -else - . $scripts/regression_namelists_db.sh $namelist_name -fi -rm gsiparm.anl -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/global_anavinfo.l64.txt -berror=$fixgsi/$endianness/global_berror.l${LEVS}y${NLAT}.f77 -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -ozinfo=$fixgsi/global_ozinfo.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -errtable=$fixgsi/prepobs_errtable.global -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Adjust data usage flags in convinfo file. -rm new -cp convinfo old -mv convinfo convinfo_original -sed 's/sst 180 0 -1 3.0/sst 180 0 1 3.0/' < old > new -mv new old -sed 's/uv 243 56 1 3.0/uv 243 56 -1 3.0/' < old > new -mv new old -sed 's/uv 253 56 1 3.0/uv 253 56 -1 3.0/' < old > new -mv new convinfo - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $global_4dvar_T62_obs/${prefix_obs}.prepbufr ./prepbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.satwnd.${suffix} ./satwndbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.spssmi.${suffix} ./ssmirrbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.sptrmm.${suffix} ./tmirrbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bamua.${suffix} ./amsuabufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bamub.${suffix} ./amsubbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.1bmsu.${suffix} ./msubufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.airsev.${suffix} ./airsbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.sevcsr.${suffix} ./seviribufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.mtiasi.${suffix} ./iasibufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.amsre.${suffix} ./amsrebufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.ssmis.${suffix} ./ssmisbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.gome.${suffix} ./gomebufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.omi.${suffix} ./omibufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.mlsbufr.${suffix} ./mlsbufr -$ncp $global_4dvar_T62_obs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears -$ncp $global_4dvar_T62_obs/${prefix_obs}.esamua.${suffix} ./amsuabufrears -$ncp $global_4dvar_T62_obs/${prefix_obs}.esamub.${suffix} ./amsubbufrears -$ncp $global_4dvar_T62_obs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl - -# Copy bias correction, atmospheric and surface files -if [ "$minimization" = "lanczos" ]; then - $ncp $global_4dvar_T62_ges/${prefix_tbc}.abias.orig ./satbias_in - $ncp $global_4dvar_T62_ges/${prefix_tbc}.satang.orig ./satbias_angle -else - $ncp $global_4dvar_T62_ges/${prefix_tbc}.abias ./satbias_in - $ncp $global_4dvar_T62_ges/${prefix_tbc}.abias_pc ./satbias_pc - $ncp $global_4dvar_T62_ges/${prefix_tbc}.satang ./satbias_angle - $ncp $global_4dvar_T62_ges/${prefix_tbc}.radstat ./radstat.gdas - - listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` - for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl - done -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - ##$ncp $global_4dvar_T62_ges/${prefix_sfc}.bf03 ./sfcf03 - $ncp $global_4dvar_T62_ges/${prefix_sfc}.bf06 ./sfcf06 - ##$ncp $global_4dvar_T62_ges/${prefix_sfc}.bf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ##$ncp $global_4dvar_T62_ges/${prefix_sfc}.bf03.le ./sfcf03 - $ncp $global_4dvar_T62_ges/${prefix_sfc}.bf06.le ./sfcf06 - ##$ncp $global_4dvar_T62_ges/${prefix_sfc}.bf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - ##$ncp $global_4dvar_T62_obs/${prefix_atm}.sgm3prep ./sigf03 - $ncp $global_4dvar_T62_obs/${prefix_atm}.sgesprep ./sigf06 - ##$ncp $global_4dvar_T62_obs/${prefix_atm}.sgp3prep ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ##$ncp $global_4dvar_T62_obs/${prefix_atm}.sgm3prep.le ./sigf03 - $ncp $global_4dvar_T62_obs/${prefix_atm}.sgesprep.le ./sigf06 - ##$ncp $global_4dvar_T62_obs/${prefix_atm}.sgp3prep.le ./sigf09 -fi - -# Run gsi observer -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout.obsvr 2>&1" - -# Run gsi identity model 4dvar under Parallel Operating Environment (poe) on NCEP IBM -rm -f siganl sfcanl.gsi satbias_out fort.2* -rm -rf dir.0* - -# Create namelist for identity model 4dvar run -SETUP4dv="l4dvar=.true.,jiterstart=1,nhr_assimilation=6,nhr_obsbin=$nhr_obsbin,idmodel=.true.,iwrtinc=1,lanczosave=.true.," -#SETUP="$SETUPmin $SETUPlan $SETUP4dv $SETUP_update" -SETUP="$SETUPmin $SETUP4dv $SETUP_update" - -if [ "$minimization" = "lanczos" ]; then - namelist_name=global_lanczos_T62 -else - namelist_name=global_T62 -fi - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh $namelist_name -else - . $scripts/regression_namelists_db.sh $namelist_name -fi -rm gsiparm.anl -cat << EOF > gsiparm.anl -$gsi_namelist -EOF - -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/global_C96_fv3aero.sh b/regression/global_C96_fv3aero.sh deleted file mode 100755 index 438cd6dc0..000000000 --- a/regression/global_C96_fv3aero.sh +++ /dev/null @@ -1,334 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export LEVS=64 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/outC96_fv3aero/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -PDY=`echo $global_C96_fv3aero_adate | cut -c1-8` -cyc=`echo $global_C96_fv3aero_adate | cut -c9-10` -gdate=`date +%Y%m%d%H -d "${global_C96_fv3aero_adate:0:8} ${global_C96_fv3aero_adate:8:2} - 6 hours"` -gPDY=`echo $gdate | cut -c1-8` -gcyc=`echo $gdate | cut -c9-10` -hha=`echo $global_C96_fv3aero_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gfs.t${hha}z. -prefix_prep=$prefix_obs -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gfsC96.t${hhg}z -prefix_atm=gfsC96.t${hhg}z -suffix_obs=gdas.${global_C96_fv3aero_adate} -suffix_bias=gdas.${gdate} - -datobs=$global_C96_fv3aero_obs/gfs.$PDY/$cyc -datanl=$global_C96_fv3aero_obs/gfs.$PDY/$cyc -datges=$global_C96_fv3aero_ges/gfs.$gPDY/$gcyc - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aero_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aero_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aero_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aero_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -. $scripts/regression_namelists.sh global_C96_fv3aero - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/Big_Endian/fv3aero_berror.l64y194.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -anavinfo=$fixgsi/anavinfo_fv3aero -aeroinfo=$fixgsi/aeroinfo_fv3aero -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -hybens_info=$fixgsi/global_hybens_info.l64.txt -errtable=$fixgsi/prepobs_errtable.global -atmsbeaminfo=$fixgsi/atms_beamwidth.txt - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -mkdir ./crtm_coeffs -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./crtm_coeffs/AerosolCoeff.bin -$ncp $cldcoef ./crtm_coeffs/CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $aeroinfo ./aeroinfo -$ncp $hybens_info ./hybens_info -$ncp $atmsbeaminfo ./atms_beamwidth.txt - -# Copy CRTM coefficient files -$ncp $fixcrtm/v.modis_aqua.SpcCoeff.bin ./crtm_coeffs/v.modis_aqua.SpcCoeff.bin -$ncp $fixcrtm/v.modis_aqua.TauCoeff.bin ./crtm_coeffs/v.modis_aqua.TauCoeff.bin -$ncp $fixcrtm/v.modis_terra.SpcCoeff.bin ./crtm_coeffs/v.modis_terra.SpcCoeff.bin -$ncp $fixcrtm/v.modis_terra.TauCoeff.bin ./crtm_coeffs/v.modis_terra.TauCoeff.bin - -# Copy observational data to $tmpdir -ln -s -f $datobs/${prefix_obs}modisaod.tm00.bufr ./modisaodbufr - - -# Copy bias correction, atmospheric and surface files -ln -s -f $datges/gfs.t18z.abias ./satbias_in -ln -s -f $datges/gfs.t18z.abias_pc ./satbias_pc -#ln -s -f $datges/gfs.t18z.radstat ./radstat.gdas - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $datges/${prefix_sfc}.sfcf03 ./sfcf03 - ln -s -f $datges/${prefix_sfc}.sfcf06 ./sfcf06 - ln -s -f $datges/${prefix_sfc}.sfcf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $datges/${prefix_sfc}.sfcf03.le ./sfcf03 - ln -s -f $datges/${prefix_sfc}.sfcf06.le ./sfcf06 - ln -s -f $datges/${prefix_sfc}.sfcf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $datges/${prefix_atm}.sigf03 ./sigf03 - ln -s -f $datges/${prefix_atm}.sigf06 ./sigf06 - ln -s -f $datges/${prefix_atm}.sigf09 ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $datges/${prefix_atm}.sigf03.le ./sigf03 - ln -s -f $datges/${prefix_atm}.sigf06.le ./sigf06 - ln -s -f $datges/${prefix_atm}.sigf09.le ./sigf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - - - - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - - -echo "Time before diagnostic loop is `date` " -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="modis_aod_terra modis_aod_aqua" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${global_T62_adate} - compress diag_${type}_${string}.${global_T62_adate} - $ncp diag_${type}_${string}.${global_T62_adate}.Z $savdir/ - fi - done -done -echo "Time after diagnostic loop is `date` " - - - -# If requested, clean up $tmpdir -if [[ "$CLEAN" = "YES" ]];then - if [[ $rc -eq 0 ]];then - rm -rf $tmpdir - cd $tmpdir - cd ../ - rmdir $tmpdir - fi -fi - - -# End of script -exit diff --git a/regression/global_C96_fv3aerorad.sh b/regression/global_C96_fv3aerorad.sh deleted file mode 100755 index 6e990be1b..000000000 --- a/regression/global_C96_fv3aerorad.sh +++ /dev/null @@ -1,305 +0,0 @@ -set -x -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export LEVS=64 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/outC96_fv3aerorad/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp -ncpl="ln -fs" - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -PDY=`echo $global_C96_fv3aerorad_adate | cut -c1-8` -cyc=`echo $global_C96_fv3aerorad_adate | cut -c9-10` -gdate=`date +%Y%m%d%H -d "${global_C96_fv3aerorad_adate:0:8} ${global_C96_fv3aerorad_adate:8:2} - 6 hours"` -gPDY=`echo $gdate | cut -c1-8` -gcyc=`echo $gdate | cut -c9-10` -hha=`echo $global_C96_fv3aerorad_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gfs.t${hha}z -prefix_prep=$prefix_obs -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gfsC96.t${hhg}z -prefix_atm=gfsC96.t${hhg}z -prefix_aer=gfsC96.t${hhg}z -suffix_obs=tm00.bufr_d - -datobs=$global_C96_fv3aerorad_obs/gfs.$PDY/$cyc -datanl=$global_C96_fv3aerorad_obs/gfs.$PDY/$cyc -datges=$global_C96_fv3aerorad_ges/gfs.$gPDY/$gcyc - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aerorad_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aerorad_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aerorad_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_C96_fv3aerorad_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -. $scripts/regression_namelists.sh global_C96_fv3aerorad - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/Big_Endian/global_berror.l64y194.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/fv3aerorad_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -anavinfo=$fixgsi/anavinfo_fv3aerorad -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -hybens_info=$fixgsi/global_hybens_info.l64.txt -errtable=$fixgsi/prepobs_errtable.global -atmsbeaminfo=$fixgsi/atms_beamwidth.txt - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -mkdir ./crtm_coeffs -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./crtm_coeffs/AerosolCoeff.bin -$ncp $cldcoef ./crtm_coeffs/CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $aeroinfo ./aeroinfo -$ncp $hybens_info ./hybens_info -$ncp $atmsbeaminfo ./atms_beamwidth.txt - -# Copy CRTM coefficient files -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./crtm_coeffs - $ncp $fixcrtm/${file}.TauCoeff.bin ./crtm_coeffs -done - -# Copy observational data to $tmpdir -$ncpl $datobs/${prefix_obs}.prepbufr ./prepbufr -$ncpl $datobs/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl -$ncpl $datobs/${prefix_obs}.nsstbufr ./nsstbufr -$ncpl $datobs/${prefix_obs}.airsev.${suffix_obs} ./airsbufr -$ncpl $datobs/${prefix_obs}.mtiasi.${suffix_obs} ./iasibufr -$ncpl $datobs/${prefix_obs}.cris.${suffix_obs} ./crisbufr - -# Copy bias correction, atmospheric and surface files -$ncpl $datges/gfs.t18z.abias ./satbias_in -$ncpl $datges/gfs.t18z.abias_pc ./satbias_pc -$ncpl $datges/gfs.t18z.abias_air ./aircftbias_in -#$ncpl $datges/gfs.t18z.radstat ./radstat.gdas - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $datges/${prefix_sfc}.sfcf03 ./sfcf03 - ln -s -f $datges/${prefix_sfc}.sfcf06 ./sfcf06 - ln -s -f $datges/${prefix_sfc}.sfcf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $datges/${prefix_sfc}.sfcf03.le ./sfcf03 - ln -s -f $datges/${prefix_sfc}.sfcf06.le ./sfcf06 - ln -s -f $datges/${prefix_sfc}.sfcf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $datges/${prefix_atm}.sigf03 ./sigf03 - ln -s -f $datges/${prefix_atm}.sigf06 ./sigf06 - ln -s -f $datges/${prefix_atm}.sigf09 ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $datges/${prefix_atm}.sigf03.le ./sigf03 - ln -s -f $datges/${prefix_atm}.sigf06.le ./sigf06 - ln -s -f $datges/${prefix_atm}.sigf09.le ./sigf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - $ncpl $datges/${prefix_aer}.sigf03 ./aerf03 - $ncpl $datges/${prefix_aer}.sigf06 ./aerf06 - $ncpl $datges/${prefix_aer}.sigf09 ./aerf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - $ncpl $datges/${prefix_aer}.sigf03.le ./aerf03 - $ncpl $datges/${prefix_aer}.sigf06.le ./aerf06 - $ncpl $datges/${prefix_aer}.sigf09.le ./aerf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# If requested, clean up $tmpdir -if [[ "$CLEAN" = "YES" ]];then - if [[ $rc -eq 0 ]];then - rm -rf $tmpdir - cd $tmpdir - cd ../ - rmdir $tmpdir - fi -fi - - -# End of script -exit diff --git a/regression/global_T62.sh b/regression/global_T62.sh deleted file mode 100755 index 854e066af..000000000 --- a/regression/global_T62.sh +++ /dev/null @@ -1,451 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -#export JCAP=62 -export LEVS=64 -export JCAP_B=$JCAP - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -#datobs=$datobs -#datobs=/scratch1/portfolios/NCEPDEV/da/noscrub/Michael.Lueken/CASES/sigmap/$adate -#datges=$datges -#datges=/scratch1/portfolios/NCEPDEV/da/noscrub/Michael.Lueken/CASES/sigmap/$adate - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=256 - export LATA=128 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_T62_adate:0:8} ${global_T62_adate:8:2} - 6 hours"` -hha=`echo $global_T62_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gdas1.t${hha}z. -prefix_prep=$prefix_obs -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gdas${resol}.t${hhg}z -prefix_atm=gdas${resol}.t${hha}z -suffix_obs=gdas.${global_T62_adate} -suffix_bias=gdas.${gdate} - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_T62 -else - . $scripts/regression_namelists_db.sh global_T62 -fi - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/$endianness/global_berror.l${LEVS}y${NLAT}.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -anavinfo=$fixgsi/global_anavinfo.l64.txt -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -hybens_info=$fixgsi/global_hybens_info.l64.txt -errtable=$fixgsi/prepobs_errtable.global -atmsbeaminfo=$fixgsi/atms_beamwidth.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $hybens_info ./hybens_info -$ncp $atmsbeaminfo ./atms_beamwidth.txt - -#### -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv -### - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - - -# Copy observational data to $tmpdir -ln -s -f $global_T62_obs/prepqc.${suffix_obs} ./prepbufr -ln -s -f $global_T62_obs/satwnd.${suffix_obs} ./satwndbufr -ln -s -f $global_T62_obs/gpsro.${suffix_obs} ./gpsrobufr -ln -s -f $global_T62_obs/spssmi.${suffix_obs} ./ssmirrbufr -ln -s -f $global_T62_obs/sptrmm.${suffix_obs} ./tmirrbufr -ln -s -f $global_T62_obs/gome.${suffix_obs} ./gomebufr -ln -s -f $global_T62_obs/omi.${suffix_obs} ./omibufr -ln -s -f $global_T62_obs/mls.${suffix_obs} ./mlsbufr -ln -s -f $global_T62_obs/osbuv8.${suffix_obs} ./sbuvbufr -ln -s -f $global_T62_obs/goesfv.${suffix_obs} ./gsnd1bufr -ln -s -f $global_T62_obs/1bamua.${suffix_obs} ./amsuabufr -ln -s -f $global_T62_obs/1bamub.${suffix_obs} ./amsubbufr -ln -s -f $global_T62_obs/1bhrs2.${suffix_obs} ./hirs2bufr -ln -s -f $global_T62_obs/1bhrs3.${suffix_obs} ./hirs3bufr -ln -s -f $global_T62_obs/1bhrs4.${suffix_obs} ./hirs4bufr -ln -s -f $global_T62_obs/1bmhs.${suffix_obs} ./mhsbufr -ln -s -f $global_T62_obs/1bmsu.${suffix_obs} ./msubufr -ln -s -f $global_T62_obs/airsev.${suffix_obs} ./airsbufr -ln -s -f $global_T62_obs/sevcsr.${suffix_obs} ./seviribufr -ln -s -f $global_T62_obs/mtiasi.${suffix_obs} ./iasibufr -ln -s -f $global_T62_obs/esamua.${suffix_obs} ./amsuabufrears -ln -s -f $global_T62_obs/esamub.${suffix_obs} ./amsubbufrears -ln -s -f $global_T62_obs/eshrs3.${suffix_obs} ./hirs3bufrears -ln -s -f $global_T62_obs/ssmit.${suffix_obs} ./ssmitbufr -ln -s -f $global_T62_obs/amsre.${suffix_obs} ./amsrebufr -ln -s -f $global_T62_obs/ssmis.${suffix_obs} ./ssmisbufr -ln -s -f $global_T62_obs/atms.${suffix_obs} ./atmsbufr -ln -s -f $global_T62_obs/cris.${suffix_obs} ./crisbufr -ln -s -f $global_T62_obs/crisf4.${suffix_obs} ./crisfsbufr -ln -s -f $global_T62_obs/tcvitl.${suffix_obs} ./tcvitl - - -# Copy bias correction, atmospheric and surface files -ln -s -f $global_T62_ges/biascr.${suffix_bias} ./satbias_in -ln -s -f $global_T62_ges/biascr_pc.${suffix_bias} ./satbias_pc -ln -s -f $global_T62_ges/radstat.${suffix_bias} ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $global_T62_ges/${prefix_sfc}.bf03 ./sfcf03 - ln -s -f $global_T62_ges/${prefix_sfc}.bf06 ./sfcf06 - ln -s -f $global_T62_ges/${prefix_sfc}.bf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $global_T62_ges/${prefix_sfc}.bf03.le ./sfcf03 - ln -s -f $global_T62_ges/${prefix_sfc}.bf06.le ./sfcf06 - ln -s -f $global_T62_ges/${prefix_sfc}.bf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - ln -s -f $global_T62_obs/${prefix_atm}.sgm3prep ./sigf03 - ln -s -f $global_T62_obs/${prefix_atm}.sgesprep ./sigf06 - ln -s -f $global_T62_obs/${prefix_atm}.sgp3prep ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $global_T62_obs/${prefix_atm}.sgm3prep.le ./sigf03 - ln -s -f $global_T62_obs/${prefix_atm}.sgesprep.le ./sigf06 - ln -s -f $global_T62_obs/${prefix_atm}.sgp3prep.le ./sigf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? - -exit $rc - - - - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - - -echo "Time before diagnostic loop is `date` " -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 gome_metop-a omi_aura ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${global_T62_adate} - compress diag_${type}_${string}.${global_T62_adate} - $ncp diag_${type}_${string}.${global_T62_adate}.Z $savdir/ - fi - done -done -echo "Time after diagnostic loop is `date` " - - - -# If requested, clean up $tmpdir -if [[ "$CLEAN" = "YES" ]];then - if [[ $rc -eq 0 ]];then - rm -rf $tmpdir - cd $tmpdir - cd ../ - rmdir $tmpdir - fi -fi - - -# End of script -exit diff --git a/regression/global_T62_ozonly.sh b/regression/global_T62_ozonly.sh deleted file mode 100755 index 27fedf9cc..000000000 --- a/regression/global_T62_ozonly.sh +++ /dev/null @@ -1,429 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -#export JCAP=62 -export LEVS=64 -export JCAP_B=$JCAP - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}_ozonly/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -#datobs=$datobs -#datobs=/scratch1/portfolios/NCEPDEV/da/noscrub/Michael.Lueken/CASES/sigmap/$adate -#datges=$datges -#datges=/scratch1/portfolios/NCEPDEV/da/noscrub/Michael.Lueken/CASES/sigmap/$adate - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=256 - export LATA=128 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_T62_adate:0:8} ${global_T62_adate:8:2} - 6 hours"` -hha=`echo $global_T62_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gdas1.t${hha}z. -prefix_prep=$prefix_obs -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gdas${resol}.t${hhg}z -prefix_atm=gdas${resol}.t${hha}z -suffix_obs=gdas.${global_T62_adate} -suffix_bias=gdas.${gdate} - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_T62_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -. $scripts/regression_namelists.sh global_T62_ozonly - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/$endianness/global_berror.l${LEVS}y${NLAT}.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -anavinfo=$fixgsi/global_anavinfo_ozonly.l64.txt -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -hybens_info=$fixgsi/global_hybens_info.l64.txt -errtable=$fixgsi/prepobs_errtable.global -atmsbeaminfo=$fixgsi/atms_beamwidth.txt - -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $hybens_info ./hybens_info -$ncp $atmsbeaminfo ./atms_beamwidth.txt -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - - -# Copy observational data to $tmpdir -ln -s -f $global_T62_obs/prepqc.${suffix_obs} ./prepbufr -#ln -s -f $global_T62_obs/${prefix_obs}satwnd.${suffix} ./satwndbufr -#ln -s -f $global_T62_obs/${prefix_obs}gpsro.${suffix} ./gpsrobufr -#ln -s -f $global_T62_obs/${prefix_obs}spssmi.${suffix} ./ssmirrbufr -#ln -s -f $global_T62_obs/${prefix_obs}sptrmm.${suffix} ./tmirrbufr -ln -s -f $global_T62_obs/gome.${suffix_obs} ./gomebufr -ln -s -f $global_T62_obs/omi.${suffix_obs} ./omibufr -ln -s -f $global_T62_obs/mls.${suffix_obs} ./mlsbufr -ln -s -f $global_T62_obs/osbuv8.${suffix_obs} ./sbuvbufr -#ln -s -f $global_T62_obs/${prefix_obs}goesfv.${suffix} ./gsnd1bufr -#ln -s -f $global_T62_obs/${prefix_obs}1bamua.${suffix} ./amsuabufr -#ln -s -f $global_T62_obs/${prefix_obs}1bamub.${suffix} ./amsubbufr -#ln -s -f $global_T62_obs/${prefix_obs}1bhrs2.${suffix} ./hirs2bufr -#ln -s -f $global_T62_obs/${prefix_obs}1bhrs3.${suffix} ./hirs3bufr -#ln -s -f $global_T62_obs/${prefix_obs}1bhrs4.${suffix} ./hirs4bufr -#ln -s -f $global_T62_obs/${prefix_obs}1bmhs.${suffix} ./mhsbufr -#ln -s -f $global_T62_obs/${prefix_obs}1bmsu.${suffix} ./msubufr -#ln -s -f $global_T62_obs/${prefix_obs}airsev.${suffix} ./airsbufr -#ln -s -f $global_T62_obs/${prefix_obs}sevcsr.${suffix} ./seviribufr -#ln -s -f $global_T62_obs/${prefix_obs}mtiasi.${suffix} ./iasibufr -#ln -s -f $global_T62_obs/${prefix_obs}esamua.${suffix} ./amsuabufrears -#ln -s -f $global_T62_obs/${prefix_obs}esamub.${suffix} ./amsubbufrears -#ln -s -f $global_T62_obs/${prefix_obs}eshrs3.${suffix} ./hirs3bufrears -#ln -s -f $global_T62_obs/${prefix_obs}ssmit.${suffix} ./ssmitbufr -#ln -s -f $global_T62_obs/${prefix_obs}amsre.${suffix} ./amsrebufr -#ln -s -f $global_T62_obs/${prefix_obs}ssmis.${suffix} ./ssmisbufr -#ln -s -f $global_T62_obs/${prefix_obs}syndata.tcvitals.tm00 ./tcvitl - - -# Copy bias correction, atmospheric and surface files -ln -s -f $global_T62_ges/biascr.${suffix_bias} ./satbias_in -ln -s -f $global_T62_ges/biascr_pc.${suffix_bias} ./satbias_pc -ln -s -f $global_T62_ges/radstat.${suffix_bias} ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -if [[ "$endianness" = "Big_Endian" ]]; then -# ln -s -f $global_T62_ges/${prefix_sfc}.bf03 ./sfcf03 - ln -s -f $global_T62_ges/${prefix_sfc}.bf06 ./sfcf06 -# ln -s -f $global_T62_ges/${prefix_sfc}.bf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $global_T62_ges/${prefix_sfc}.bf03.le ./sfcf03 - ln -s -f $global_T62_ges/${prefix_sfc}.bf06.le ./sfcf06 - ln -s -f $global_T62_ges/${prefix_sfc}.bf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then -# ln -s -f $global_T62_obs/${prefix_atm}.sgm3prep ./sigf03 - ln -s -f $global_T62_obs/${prefix_atm}.sgesprep ./sigf06 -# ln -s -f $global_T62_obs/${prefix_atm}.sgp3prep ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - ln -s -f $global_T62_obs/${prefix_atm}.sgm3prep.le ./sigf03 - ln -s -f $global_T62_obs/${prefix_atm}.sgesprep.le ./sigf06 - ln -s -f $global_T62_obs/${prefix_atm}.sgp3prep.le ./sigf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - - - - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - - -echo "Time before diagnostic loop is `date` " -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 gome_metop-a omi_aura ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${global_T62_adate} - compress diag_${type}_${string}.${global_T62_adate} - $ncp diag_${type}_${string}.${global_T62_adate}.Z $savdir/ - fi - done -done -echo "Time after diagnostic loop is `date` " - - - -# If requested, clean up $tmpdir -if [[ "$CLEAN" = "YES" ]];then - if [[ $rc -eq 0 ]];then - rm -rf $tmpdir - cd $tmpdir - cd ../ - rmdir $tmpdir - fi -fi - - -# End of script -exit diff --git a/regression/global_enkf.sh b/regression/global_enkf.sh new file mode 100755 index 000000000..e458c5830 --- /dev/null +++ b/regression/global_enkf.sh @@ -0,0 +1,189 @@ + +set -x + +# Set experiment name and analysis date + +exp=$jobname + + +# Set the JCAP resolution which you want. +export JCAP=48 +export LEVS=127 +export NMEM_ENKF=10 + +# Set runtime and save directories +tmpdir=$tmpdir/$tmpregdir/${exp} + +# Specify EnKf fixed field and data directories. +export DATA=$tmpdir + +# Set variables used in script +# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) +# ncp is cp replacement, currently keep as /bin/cp + +UNCOMPRESS=gunzip +CLEAN=NO +ncp=/bin/cp +nln="/bin/ln -fs" + + +# Given the requested resolution, set dependent resolution parameters +if [[ "$JCAP" = "96" ]]; then + export LONA=384 + export LATA=192 + export DELTIM=1200 +elif [[ "$JCAP" = "48" ]]; then + export LONA=192 + export LATA=96 + export DELTIM=1200 +else + echo "INVALID JCAP = $JCAP" + exit +fi + + +# Given the analysis date, compute the date from which the +# first guess comes. Extract cycle and set prefix and suffix +# for guess and observation data files +gdate=`date +%Y%m%d%H -d "${global_adate:0:8} ${global_adate:8:2} - 6 hours"` +PDYa=`echo $global_adate | cut -c1-8` +cyca=`echo $global_adate | cut -c9-10` +PDYg=`echo $gdate | cut -c1-8` +cycg=`echo $gdate | cut -c9-10` + +dumpobs=gdas +prefix_obs=${dumpobs}.t${cyca}z +prefix_ges=gdas.t${cycg}z +prefix_ens=gdas.t${cycg}z +suffix=tm00.bufr_d + +dumpges=gdas +COMROOTgfs=$casesdir/gfs/prod +datobs=$COMROOTgfs/enkfgdas.$PDYa/${cyca}/atmos +datges=$COMROOTgfs/$dumpges.$PDYg/${cycg}/atmos +datens=$COMROOTgfs/enkfgdas.$PDYg/${cycg}/atmos + + +# Set up $tmpdir +rm -rf $tmpdir +mkdir -p $tmpdir +cd $tmpdir + +# Make enkf namelist +export USE_CORRELATED_OBERRS=${USE_CORRELATED_OBERRS:-"NO"} +export NMEM_ENKF=${NMEM_ENKF:-10} +export NAM_ENKF="smoothparm=35," +export SATOBS_ENKF=${SATOBS_ENKF:-""} +export OZOBS_ENKF=${OZOBS_ENKF:-""} +export use_correlated_oberrs=${use_correlated_oberrs:-".false."} +if [ $USE_CORRELATED_OBERRS == "YES" ]; then + export use_correlated_oberrs=".true." +fi +export imp_physics=${imp_physics:-"11"} +export lupp=${lupp:-".true."} +export corrlength=${corrlength:-1250} +export lnsigcutoff=${lnsigcutoff:-2.75} +export analpertwt=${analpertwt:-0.85} +export readin_localization_enkf=".false." +export readin_localization_enkf=${readin_localization_enkf:-".true."} +export reducedgrid=${reducedgrid:-".true."} +export letkf_flag=${letkf_flag:-".true."} +export getkf=${getkf:-".true."} +export denkf=${denkf:-".true."} +export nobsl_max=${nobsl_max:-10000} +export lobsdiag_forenkf=${lobsdiag_forenkf:-".true."} +export write_spread_diag=${write_spread_diag:-".false."} +export cnvw_option=${cnvw_option:-".false."} +export netcdf_diag=${netcdf_diag:-".true."} +export modelspace_vloc=${modelspace_vloc:-".true."} # if true, 'vlocal_eig.dat' is needed +export IAUFHRS_ENKF=${IAUFHRS_ENKF:-'3,6,9'} +export DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} +export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_inc'" +export use_gfs_ncio=".true." +export use_gfs_nemsio=".false." +export paranc=${paranc:-".true."} +if [ $DO_CALC_INCREMENT = "YES" ]; then + export write_fv3_incr=".false." +else + export write_fv3_incr=".true." + export WRITE_INCR_ZERO="incvars_to_zero= $INCREMENTS_TO_ZERO," +fi + + +. $scripts/regression_namelists.sh global_enkf + +cat << EOF > enkf.nml + +$gsi_namelist + +EOF + +# Set fixed files +# anavinfo = text file with information about control vector +# satinfo = text file with information about assimilation of brightness temperatures +# satangl = angle dependent bias correction file (fixed in time) +# scaninfo = text file with scan angle information +# ozinfo = text file with information about assimilation of ozone data +# convinfo = text file with information about assimilation of conventional data +# hybens_info = text file with localization informztion + +satangl=$fixgsi/global_satangbias.txt +scaninfo=$fixgsi/global_scaninfo.txt +satinfo=$fixgsi/global_satinfo.txt +convinfo=$fixgsi/global_convinfo_reg_test.txt +ozinfo=$fixgsi/global_ozinfo.txt +hybens_info=$fixgsi/global_hybens_info.l${LEVS}.txt +anavinfo=$fixgsi/global_anavinfo.l${LEVS}.txt +vlocaleig=$fixgsi/vlocal_eig_l${LEVS}.dat + + +# Copy executable and fixed files to $tmpdir +if [[ $exp == *"updat"* ]]; then + $ncp $enkfexec_updat ./enkf.x +elif [[ $exp == *"contrl"* ]]; then + $ncp $enkfexec_contrl ./enkf.x +fi + +$ncp $satangl ./satbias_angle +$ncp $scaninfo ./scaninfo +$ncp $satinfo ./satinfo +$ncp $ozinfo ./ozinfo +$ncp $convinfo ./convinfo +$ncp $vlocaleig ./vlocal_eig.dat +$ncp $hybens_info ./hybens_info +$ncp $anavinfo ./anavinfo + + +# Copy ensemble data to $tmpdir +list="cnvstat oznstat radstat" + +for type in $list; do + $ncp $datobs/${prefix_obs}.${type}.ensmean ./${type}_ensmean + tar -xvf ${type}_ensmean +done + +nfhrs=`echo $IAUFHRS_ENKF | sed 's/,/ /g'` +for fhr in $nfhrs; do + for imem in $(seq 1 $NMEM_ENKF); do + memchar="mem"$(printf %03i $imem) + $nln $datens/$memchar/${prefix_ens}.atmf00${fhr}.nc sfg_${global_adate}_fhr0${fhr}_${memchar} + if [ $cnvw_option = ".true." ]; then + $nln $datens/$memchar/${prefix_ens}sfcf00${fhr}.nc sfgsfc_${global_adate}_fhr0${fhr}_${memchar} + fi + (( imem = $imem + 1 )) + done + $nln $datens/${prefix_ens}.atmf00${fhr}.ensmean.nc sfg_${global_adate}_fhr0${fhr}_ensmean + if [ $cnvw_option = ".true." ]; then + $nln $datens/${prefix_ens}.sfcf00${fhr}.ensmean.nc sfgsfc_${global_adate}_fhr0${fhr}_ensmean + fi +done + +$nln $datobs/${prefix_obs}.abias_int ./satbias_in + + +cd $tmpdir +echo "run enkf now" +rm stdout stderr +eval "$APRUN $tmpdir/enkf.x 1>stdout 2>stderr" +rc=$? +exit $rc diff --git a/regression/global_enkf_T62.sh b/regression/global_enkf_T62.sh deleted file mode 100755 index 3ddc18ba0..000000000 --- a/regression/global_enkf_T62.sh +++ /dev/null @@ -1,180 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export JCAP=62 -export LEVS=64 -export NMEM_ENKF=20 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}_enkf/${exp} - -# Specify EnKf fixed field and data directories. -export DATA=$tmpdir - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=256 - export LATA=128 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi - - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -export adate=$global_enkf_T62_adate -gdate=`date +%Y%m%d%H -d "${global_enkf_T62_adate:0:8} ${global_enkf_T62_adate:8:2} - 6 hours"` -yyg=`echo $gdate | cut -c1-8` -hhg=`echo $gdate | cut -c9-10` -yya=`echo $global_enkf_T62_adate | cut -c1-8` -hha=`echo $global_enkf_T62_adate | cut -c9-10` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - - -# Make enkf namelist - -. $scripts/regression_nl_update.sh - -export NAM_ENKF="$SETUP_enkf" - - -. $scripts/regression_namelists.sh global_enkf_T62 - -cat << EOF > enkf.nml - -$gsi_namelist - -EOF - -# Set fixed files -# anavinfo = text file with information about control vector -# satinfo = text file with information about assimilation of brightness temperatures -# satangl = angle dependent bias correction file (fixed in time) -# scaninfo = text file with scan angle information -# ozinfo = text file with information about assimilation of ozone data -# convinfo = text file with information about assimilation of conventional data -# hybens_info = text file with localization informztion - -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -ozinfo=$fixgsi/global_ozinfo.txt -hybens_info=$fixgsi/global_hybens_info.l64.txt -anavinfo=$fixgsi/global_anavinfo.l64.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - - - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $enkfexec_updat ./enkf.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $enkfexec_contrl ./enkf.x -fi - -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $hybens_info ./hybens_info -$ncp $anavinfo ./anavinfo - -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - -# Copy ensemble data to $tmpdir -list="cnvstat oznstat radstat" - -for type in $list; do - $ncp $global_enkf_T62_datobs/${type}_${adate}_ensmean ./${type}_ensmean - tar -xvf ${type}_ensmean -done -imem=1 -while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - list="cnvstat oznstat radstat" - for type in $list; do - $ncp $global_enkf_T62_datobs/${type}_${adate}${member} ./${type}${member} - tar -xvf ${type}${member} - done - sigens=$global_enkf_T62_datges/sfg_${gdate}_fhr06s${member} - $ncp $sigens sfg_${global_enkf_T62_adate}_fhr06${member} - (( imem = $imem + 1 )) -done - - -# Copy bias correction, atmospheric and surface files -$ncp $global_enkf_T62_datges/biascr_int_${gdate}_ensmean ./satbias_in -$ncp $global_enkf_T62_datges/satang.gdas.$gdate ./satbias_ang.in - -$ncp $global_enkf_T62_datges/sfg_${gdate}_fhr06_ensmean ./sfg_${global_enkf_T62_adate}_fhr06_ensmean -$ncp $global_enkf_T62_datges/bfg_${gdate}_fhr06_ensmean ./bfg_${global_enkf_T62_adate}_fhr06_ensmean - -cd $tmpdir -echo "run enkf now" -\rm stdout stderr -eval "$APRUN $tmpdir/enkf.x 1>stdout 2>stderr" -rc=$? -exit $rc diff --git a/regression/global_fv3_4denvar_C192.sh b/regression/global_fv3_4denvar_C192.sh deleted file mode 100755 index 223a797de..000000000 --- a/regression/global_fv3_4denvar_C192.sh +++ /dev/null @@ -1,420 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -export JCAP=190 -export LEVS=127 -export JCAP_B=382 -export JCAP_EN=190 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp -ncpl="ln -fs" - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "670" ]]; then - export LONA=1344 - export LATA=672 - export DELTIM=100 - export resol=1 -elif [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "190" ]]; then - export LONA=384 - export LATA=192 - export DELTIM=400 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=384 - export LATA=190 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Size of ensemble -ENS_NUM_ANAL=20 -ENSBEG=1 -ENSEND=20 - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -PDY=`echo $global_fv3_4denvar_C192_adate | cut -c1-8` -cyc=`echo $global_fv3_4denvar_C192_adate | cut -c9-10` -GDATE=`date +%Y%m%d%H -d "${global_fv3_4denvar_C192_adate:0:8} ${global_fv3_4denvar_C192_adate:8:2} - 6 hours"` -gPDY=`echo $GDATE | cut -c1-8` -gcyc=`echo $GDATE | cut -c9-10` - -dumpobs=gdas -prefix_obs=${dumpobs}.t${cyc}z -prefix_ges=gdas.t${gcyc}z -prefix_ens=gdas.t${gcyc}z -suffix=tm00.bufr_d - -datobs=$global_fv3_4denvar_C192_datobs/gdas.$PDY/$cyc -datanl=$global_fv3_4denvar_C192_datobs/gdas.$PDY/$cyc -datges=$global_fv3_4denvar_C192_datges/gdas.$gPDY/$gcyc -datens=$global_fv3_4denvar_C192_datges/enkfgdas.$gPDY/$gcyc - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_C192_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_C192_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_C192_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_C192_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_fv3_4denvar_C192 -else - . $scripts/regression_namelists_db.sh global_fv3_4denvar_C192 -fi - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/global_anavinfo.l${LEVS}.txt -berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 -locinfo=$fixgsi/global_hybens_info.l${LEVS}.txt -satinfo=$fixgsi/global_satinfo.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/global_satangbias.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -ozinfo=$fixgsi/global_ozinfo.txt -convinfo=$fixgsi/global_convinfo.txt -vqcdat=$fixgsi/vqctp001.dat -insituinfo=$fixgsi/global_insituinfo.txt -errtable=$fixgsi/prepobs_errtable.global -aeroinfo=$fixgsi/global_aeroinfo.txt -atmsbeaminfo=$fixgsi/atms_beamwidth.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $locinfo ./hybens_info -$ncp $satinfo ./satinfo -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $insituinfo ./insituinfo -$ncp $errtable ./errtable -$ncp $aeroinfo ./aeroinfo -$ncp $atmsbeaminfo ./atms_beamwidth.txt -$ncp $cloudyinfo ./cloudy_radiance_info.txt - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#If using correlated error, get the covariance files -if grep -q "Rcov" $anavinfo ; -then - if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; - then - $ncp ${fixgsi}/Rcov* $tmpdir/ - -# Correlated error utlizes mkl lapack. Found it necesary to fix the -# number of mkl threads to ensure reproducible results independent -# of the job configuration. - export MKL_NUM_THREADS=1 - - else - echo "Warning: Satellite error covariance files are missing." - echo "Check for the required Rcov files in " $anavinfo - exit 1 - fi -fi - -# Copy CRTM coefficient files based on entries in satinfo file -mkdir -p crtm_coeffs -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./crtm_coeffs/ - $ncp $fixcrtm/${file}.TauCoeff.bin ./crtm_coeffs/ -done - -$ncp $emiscoef_IRwater ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./crtm_coeffs/AerosolCoeff.bin -$ncp $cldcoef ./crtm_coeffs/CloudCoeff.bin - - -# Copy observational data to $DATA -$ncpl $datanl/${prefix_obs}.prepbufr ./prepbufr -$ncpl $datanl/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl -$ncpl $datanl/${prefix_obs}.nsstbufr ./nsstbufr -$ncpl $datobs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr -$ncpl $datobs/${prefix_obs}.satwnd.${suffix} ./satwndbufr -$ncpl $datobs/${prefix_obs}.spssmi.${suffix} ./ssmirrbufr -$ncpl $datobs/${prefix_obs}.sptrmm.${suffix} ./tmirrbufr -$ncpl $datobs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr -$ncpl $datobs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr -$ncpl $datobs/${prefix_obs}.1bamua.${suffix} ./amsuabufr -$ncpl $datobs/${prefix_obs}.1bamub.${suffix} ./amsubbufr -$ncpl $datobs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr -$ncpl $datobs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr -$ncpl $datobs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr -$ncpl $datobs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr -$ncpl $datobs/${prefix_obs}.1bmsu.${suffix} ./msubufr -$ncpl $datobs/${prefix_obs}.airsev.${suffix} ./airsbufr -$ncpl $datobs/${prefix_obs}.sevcsr.${suffix} ./seviribufr -$ncpl $datobs/${prefix_obs}.mtiasi.${suffix} ./iasibufr -$ncpl $datobs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr -$ncpl $datobs/${prefix_obs}.ssmisu.${suffix} ./ssmisbufr -$ncpl $datobs/${prefix_obs}.gome.${suffix} ./gomebufr -$ncpl $datobs/${prefix_obs}.omi.${suffix} ./omibufr -$ncpl $datobs/${prefix_obs}.mls.${suffix} ./mlsbufr -$ncpl $datobs/${prefix_obs}.ompsn8.${suffix} ./ompsnpbufr -$ncpl $datobs/${prefix_obs}.ompst8.${suffix} ./ompstcbufr -$ncpl $datobs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears -$ncpl $datobs/${prefix_obs}.esamua.${suffix} ./amsuabufrears -$ncpl $datobs/${prefix_obs}.esamub.${suffix} ./amsubbufrears -$ncpl $datobs/${prefix_obs}.atms.${suffix} ./atmsbufr -$ncpl $datobs/${prefix_obs}.cris.${suffix} ./crisbufr -$ncpl $datobs/${prefix_obs}.crisf4.${suffix} ./crisfsbufr -$ncpl $datobs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl -$ncpl $datobs/${prefix_obs}.avcsam.${suffix} ./avhambufr -$ncpl $datobs/${prefix_obs}.avcspm.${suffix} ./avhpmbufr -$ncpl $datobs/${prefix_obs}.saphir.${suffix} ./saphirbufr -$ncpl $datobs/${prefix_obs}.gmi1cr.${suffix} ./gmibufr -if [ "$debug" = ".false." ]; then - $ncpl $datobs/${prefix_obs}.esiasi.${suffix} ./iasibufrears -fi -$ncpl $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db -$ncpl $datobs/${prefix_obs}.amuadb.${suffix} ./amsuabufr_db -$ncpl $datobs/${prefix_obs}.amubdb.${suffix} ./amsubbufr_db -$ncpl $datobs/${prefix_obs}.iasidb.${suffix} ./iasibufr_db -$ncpl $datobs/${prefix_obs}.crisdb.${suffix} ./crisbufr_db -$ncpl $datobs/${prefix_obs}.atmsdb.${suffix} ./atmsbufr_db -$ncpl $datobs/${prefix_obs}.escris.${suffix} ./crisbufrears -$ncpl $datobs/${prefix_obs}.esatms.${suffix} ./atmsbufrears - -# Copy bias correction, atmospheric and surface files -$ncpl $datges/${prefix_ges}.abias ./satbias_in -$ncpl $datges/${prefix_ges}.abias_pc ./satbias_pc -$ncpl $datges/${prefix_ges}.abias_air ./aircftbias_in - -flist="03 04 05 06 07 08 09" -for fh in $flist; do - $ncpl $datges/${prefix_ges}.sfcf0$fh.nc ./sfcf$fh - $ncpl $datges/${prefix_ges}.atmf0$fh.nc ./sigf$fh -done - - -ensemble_path="./ensemble_data/" -mkdir -p $ensemble_path -enkf_suffix="" -flist="03 04 05 06 07 08 09" -for fh in $flist; do - sigens=${prefix_ens}.atmf0${fh}${enkf_suffix}.nc - - imem=$ENSBEG - imemloc=1 - while [[ $imem -le $ENSEND ]]; do - member="mem"`printf %03i $imem` - memloc="mem"`printf %03i $imemloc` - $ncpl $datens/$member/$sigens ${ensemble_path}sigf${fh}_ens_${memloc} - (( imem = $imem + 1 )) - (( imemloc = $imemloc + 1 )) - done -done - -$ncpl $datens/${prefix_ens}.sfcf006.ensmean.nc ./sfcf06_anlgrid - -$ncpl $datges/${prefix_ges}.radstat ./radstat.gdas -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/global_fv3_4denvar_T126.sh b/regression/global_fv3_4denvar_T126.sh deleted file mode 100755 index 279716585..000000000 --- a/regression/global_fv3_4denvar_T126.sh +++ /dev/null @@ -1,432 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export JCAP=62 -export LEVS=64 -export JCAP_B=126 -export JCAP_EN=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp -ncpl="ln -fs" - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "670" ]]; then - export LONA=1344 - export LATA=672 - export DELTIM=100 - export resol=1 -elif [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=384 - export LATA=190 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Size of ensemble -ENS_NUM_ANAL=20 -ENSBEG=1 -ENSEND=20 - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -PDY=`echo $global_fv3_4denvar_T126_adate | cut -c1-8` -cyc=`echo $global_fv3_4denvar_T126_adate | cut -c9-10` -GDATE=`date +%Y%m%d%H -d "${global_fv3_4denvar_T126_adate:0:8} ${global_fv3_4denvar_T126_adate:8:2} - 6 hours"` -gPDY=`echo $GDATE | cut -c1-8` -gcyc=`echo $GDATE | cut -c9-10` - -dumpobs=gdas -prefix_obs=${dumpobs}.t${cyc}z -prefix_ges=gdas.t${gcyc}z -prefix_ens=gdas.t${gcyc}z -suffix=tm00.bufr_d - -datobs=$global_fv3_4denvar_T126_datobs/gdas.$PDY/$cyc -datanl=$global_fv3_4denvar_T126_datobs/gdas.$PDY/$cyc -datges=$global_fv3_4denvar_T126_datges/gdas.$gPDY/$gcyc -datens=$global_fv3_4denvar_T126_datges/enkfgdas.$gPDY/$gcyc - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_T126_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_T126_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_T126_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_fv3_4denvar_T126_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_fv3_4denvar_T126 -else - . $scripts/regression_namelists_db.sh global_fv3_4denvar_T126 -fi - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -insituinfo=$fixgsi/global_insituinfo.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -anavinfo=$fixgsi/global_anavinfo.l64.txt -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -errtable=$fixgsi/prepobs_errtable.global -hybens_info=$fixgsi/global_hybens_info.l64.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $insituinfo ./insituinfo -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $hybens_info ./hybens_info -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -if grep -q "Rcov" $anavinfo ; -then - if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; - then - $ncp ${fixgsi}/Rcov* . - -# Correlated error utlizes mkl lapack. Found it necesary to fix the -# number of mkl threads to ensure reproducible results independent -# of the job configuration. - export MKL_NUM_THREADS=1 - - else - echo "Warning: Satellite error covariance files are missing." - echo "Check for the required Rcov files in " $anavinfo - exit 1 - fi -fi - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $DATA -$ncpl $datanl/${prefix_obs}.prepbufr ./prepbufr -$ncpl $datanl/${prefix_obs}.prepbufr.acft_profiles ./prepbufr_profl -$ncpl $datanl/${prefix_obs}.nsstbufr ./nsstbufr -$ncpl $datobs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr -$ncpl $datobs/${prefix_obs}.satwnd.${suffix} ./satwndbufr -$ncpl $datobs/${prefix_obs}.spssmi.${suffix} ./ssmirrbufr -$ncpl $datobs/${prefix_obs}.sptrmm.${suffix} ./tmirrbufr -$ncpl $datobs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr -$ncpl $datobs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr -$ncpl $datobs/${prefix_obs}.1bamua.${suffix} ./amsuabufr -$ncpl $datobs/${prefix_obs}.1bamub.${suffix} ./amsubbufr -$ncpl $datobs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr -$ncpl $datobs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr -$ncpl $datobs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr -$ncpl $datobs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr -$ncpl $datobs/${prefix_obs}.1bmsu.${suffix} ./msubufr -$ncpl $datobs/${prefix_obs}.airsev.${suffix} ./airsbufr -$ncpl $datobs/${prefix_obs}.sevcsr.${suffix} ./seviribufr -$ncpl $datobs/${prefix_obs}.mtiasi.${suffix} ./iasibufr -$ncpl $datobs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr -$ncpl $datobs/${prefix_obs}.ssmisu.${suffix} ./ssmisbufr -$ncpl $datobs/${prefix_obs}.gome.${suffix} ./gomebufr -$ncpl $datobs/${prefix_obs}.omi.${suffix} ./omibufr -$ncpl $datobs/${prefix_obs}.mls.${suffix} ./mlsbufr -$ncpl $datobs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears -$ncpl $datobs/${prefix_obs}.esamua.${suffix} ./amsuabufrears -$ncpl $datobs/${prefix_obs}.esamub.${suffix} ./amsubbufrears -$ncpl $datobs/${prefix_obs}.atms.${suffix} ./atmsbufr -$ncpl $datobs/${prefix_obs}.cris.${suffix} ./crisbufr -$ncpl $datobs/${prefix_obs}.crisf4.${suffix} ./crisfsbufr -$ncpl $datobs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl -$ncpl $datobs/${prefix_obs}.avcsam.${suffix} ./avhambufr -$ncpl $datobs/${prefix_obs}.avcspm.${suffix} ./avhpmbufr -$ncpl $datobs/${prefix_obs}.saphir.${suffix} ./saphirbufr -$ncpl $datobs/${prefix_obs}.gmi1cr.${suffix} ./gmibufr -if [ "$debug" = ".false." ]; then - $ncpl $datobs/${prefix_obs}.esiasi.${suffix} ./iasibufrears -fi -$ncpl $datobs/${prefix_obs}.hrs3db.${suffix} ./hirs3bufr_db -$ncpl $datobs/${prefix_obs}.amuadb.${suffix} ./amsuabufr_db -$ncpl $datobs/${prefix_obs}.amubdb.${suffix} ./amsubbufr_db -$ncpl $datobs/${prefix_obs}.iasidb.${suffix} ./iasibufr_db -$ncpl $datobs/${prefix_obs}.crisdb.${suffix} ./crisbufr_db -$ncpl $datobs/${prefix_obs}.atmsdb.${suffix} ./atmsbufr_db -$ncpl $datobs/${prefix_obs}.escris.${suffix} ./crisbufrears -$ncpl $datobs/${prefix_obs}.esatms.${suffix} ./atmsbufrears - -# Copy bias correction, atmospheric and surface files -$ncpl $datges/${prefix_ges}.abias ./satbias_in -$ncpl $datges/${prefix_ges}.abias_pc ./satbias_pc -$ncpl $datges/${prefix_ges}.abias_air ./aircftbias_in - -flist="03 04 05 06 07 08 09" -for fh in $flist; do - $ncpl $datges/${prefix_ges}.sfcf0$fh.nemsio ./sfcf$fh - $ncpl $datges/${prefix_ges}.atmf0$fh.nemsio ./sigf$fh -done - - -ensemble_path="./ensemble_data/" -mkdir -p $ensemble_path -enkf_suffix="s" -flist="03 04 05 06 07 08 09" -for fh in $flist; do - sigens=${prefix_ens}.atmf0${fh}${enkf_suffix}.nemsio - - imem=$ENSBEG - imemloc=1 - while [[ $imem -le $ENSEND ]]; do - member="mem"`printf %03i $imem` - memloc="mem"`printf %03i $imemloc` - $ncpl $datens/$member/$sigens ${ensemble_path}sigf${fh}_ens_${memloc} - (( imem = $imem + 1 )) - (( imemloc = $imemloc + 1 )) - done -done - -$ncpl $datens/${prefix_ens}.sfcf006.ensmean.nemsio ./sfcf06_anlgrid - -$ncpl $datges/${prefix_ges}.radstat ./radstat.gdas -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/global_hybrid_T126.sh b/regression/global_hybrid_T126.sh deleted file mode 100755 index 8aa1fe69c..000000000 --- a/regression/global_hybrid_T126.sh +++ /dev/null @@ -1,365 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -export JCAP=126 -export LEVS=64 -export JCAP_B=126 -export JCAP_EN=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/out${JCAP}/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -#datobs=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/obs -#datges=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/ges -#datens=/scratch1/portfolios/NCEPDEV/da/noscrub/Daryl.Kleist/CASES/$adate/ens - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "574" ]]; then - export LONA=1152 - export LATA=576 - export DELTIM=120 - export resol=1 -elif [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "126" ]]; then - export LONA=256 - export LATA=128 - export DELTIM=600 - export resol=2 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_hybrid_T126_adate:0:8} ${global_hybrid_T126_adate:8:2} - 6 hours"` -yyg=`echo $gdate | cut -c1-8` -hhg=`echo $gdate | cut -c9-10` -yya=`echo $global_hybrid_T126_adate | cut -c1-8` -hha=`echo $global_hybrid_T126_adate | cut -c9-10` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_hybrid_T126_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_hybrid_T126_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_hybrid_T126_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$global_hybrid_T126_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_hybrid_T126 -else - . $scripts/regression_namelists_db.sh global_hybrid_T126 -fi - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77 - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satangl=$fixgsi/global_satangbias.txt -scaninfo=$fixgsi/global_scaninfo.txt -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -anavinfo=$fixgsi/global_anavinfo.l64.txt -ozinfo=$fixgsi/global_ozinfo.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -errtable=$fixgsi/prepobs_errtable.global -hybens_info=$fixgsi/global_hybens_info.l64.txt - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $scaninfo ./scaninfo -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -$ncp $anavinfo ./anavinfo -$ncp $hybens_info ./hybens_info -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - - -# Copy observational data to $tmpdir -$ncp $global_hybrid_T126_datobs/prepqc.gdas.$global_hybrid_T126_adate ./prepbufr -$ncp $global_hybrid_T126_datobs/prepbufr.acft_profiles.gdas.$global_hybrid_T126_adate ./prepbufr_profl -$ncp $global_hybrid_T126_datobs/satwnd.gdas.$global_hybrid_T126_adate ./satwndbufr -$ncp $global_hybrid_T126_datobs/gpsro.gdas.$global_hybrid_T126_adate ./gpsrobufr -$ncp $global_hybrid_T126_datobs/sptrmm.gdas.$global_hybrid_T126_adate ./tmirrbufr -$ncp $global_hybrid_T126_datobs/osbuv8.gdas.$global_hybrid_T126_adate ./sbuvbufr -$ncp $global_hybrid_T126_datobs/gome.gdas.$global_hybrid_T126_adate ./gomebufr -$ncp $global_hybrid_T126_datobs/omi.gdas.$global_hybrid_T126_adate ./omibufr -$ncp $global_hybrid_T126_datobs/tcvitl.gdas.$global_hybrid_T126_adate ./tcvitl -$ncp $global_hybrid_T126_datobs/goesfv.gdas.$global_hybrid_T126_adate ./gsnd1bufr -$ncp $global_hybrid_T126_datobs/1bamua.gdas.$global_hybrid_T126_adate ./amsuabufr -$ncp $global_hybrid_T126_datobs/1bamub.gdas.$global_hybrid_T126_adate ./amsubbufr -$ncp $global_hybrid_T126_datobs/1bhrs3.gdas.$global_hybrid_T126_adate ./hirs3bufr -$ncp $global_hybrid_T126_datobs/1bhrs4.gdas.$global_hybrid_T126_adate ./hirs4bufr -$ncp $global_hybrid_T126_datobs/airsev.gdas.$global_hybrid_T126_adate ./airsbufr -$ncp $global_hybrid_T126_datobs/mtiasi.gdas.$global_hybrid_T126_adate ./iasibufr -$ncp $global_hybrid_T126_datobs/esamua.gdas.$global_hybrid_T126_adate ./amsuabufrears -$ncp $global_hybrid_T126_datobs/esamub.gdas.$global_hybrid_T126_adate ./amsubbufrears -$ncp $global_hybrid_T126_datobs/eshrs3.gdas.$global_hybrid_T126_adate ./hirs3bufrears - -# Copy bias correction, atmospheric and surface files -$ncp $global_hybrid_T126_datges/biascr.gdas.$gdate ./satbias_in -$ncp $global_hybrid_T126_datges/biascr_pc.gdas.${gdate} ./satbias_pc -$ncp $global_hybrid_T126_datges/aircraft_t_bias.gdas.$global_hybrid_T126_adate ./aircftbias_in -$ncp $global_hybrid_T126_datges/radstat.gdas.$gdate ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -$ncp $global_hybrid_T126_datges/sfcf03.gdas.$gdate ./sfcf03 -$ncp $global_hybrid_T126_datges/sfcf06.gdas.$gdate ./sfcf06 -$ncp $global_hybrid_T126_datges/sfcf09.gdas.$gdate ./sfcf09 - -$ncp $global_hybrid_T126_datges/siggm3.gdas.$global_hybrid_T126_adate ./sigf03 -$ncp $global_hybrid_T126_datges/sigges.gdas.$global_hybrid_T126_adate ./sigf06 -$ncp $global_hybrid_T126_datges/siggp3.gdas.$global_hybrid_T126_adate ./sigf09 - -list="001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020" - -for file in $list; do -## ln -s $global_hybrid_T126_datges/sigf06s_${gdate}_mem${file}_t${JCAP_EN} ./sigf06_ens_mem${file} - ln -s $global_hybrid_T126_datges/sfg_${gdate}_fhr06s_mem${file} ./sigf06_ens_mem${file} -done - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/global_lanczos_T62.sh b/regression/global_lanczos_T62.sh deleted file mode 100755 index 55014a58f..000000000 --- a/regression/global_lanczos_T62.sh +++ /dev/null @@ -1,404 +0,0 @@ - -set -x - -# Set experiment name and analysis date -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -#export JCAP=62 -export LEVS=64 -export JCAP_B=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/lanczos_out${JCAP}/sigmap/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -CLEAN=NO -ncp=/bin/cp - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_lanczos_T62_adate:0:8} ${global_lanczos_T62_adate:8:2} - 6 hours"` -hha=`echo $global_lanczos_T62_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gdas1.t${hha}z -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gdas${resol}.t${hhg}z -prefix_atm=gdas${resol}.t${hha}z -prefixg=gdas1.t${hhg}z -suffix=tm00.bufr_d - -adate0=`echo $global_lanczos_T62_adate | cut -c1-8` -gdate0=`echo $gdate | cut -c1-8` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# Make gsi namelist - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_lanczos_T62_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_lanczos_T62_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_lanczos_T62_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_lanczos_T62_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_lanczos_T62 -else - . $scripts/regression_namelists_db.sh global_lanczos_T62 -fi - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/global_anavinfo.l64.txt -berror=$fixgsi/$endianness/global_berror.l${LEVS}y${NLAT}.f77 -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -ozinfo=$fixgsi/global_ozinfo.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -errtable=$fixgsi/prepobs_errtable.global - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $global_lanczos_T62_obs/${prefix_obs}.prepbufr ./prepbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.satwnd.${suffix} ./satwndbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.spssmi.${suffix} ./ssmirrbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.sptrmm.${suffix} ./tmirrbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bamua.${suffix} ./amsuabufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bamub.${suffix} ./amsubbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.1bmsu.${suffix} ./msubufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.airsev.${suffix} ./airsbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.sevcsr.${suffix} ./seviribufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.mtiasi.${suffix} ./iasibufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.amsre.${suffix} ./amsrebufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.ssmis.${suffix} ./ssmisbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.gome.${suffix} ./gomebufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.omi.${suffix} ./omibufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.mlsbufr.${suffix} ./mlsbufr -$ncp $global_lanczos_T62_obs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears -$ncp $global_lanczos_T62_obs/${prefix_obs}.esamua.${suffix} ./amsuabufrears -$ncp $global_lanczos_T62_obs/${prefix_obs}.esamub.${suffix} ./amsubbufrears -$ncp $global_lanczos_T62_obs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl - -# Copy bias correction, atmospheric and surface files -$ncp $global_lanczos_T62_ges/${prefix_tbc}.abias.orig ./satbias_in -$ncp $global_lanczos_T62_ges/${prefix_tbc}.satang.orig ./satbias_angle - -if [[ "$endianness" = "Big_Endian" ]]; then - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf03 ./sfcf03 - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf06 ./sfcf06 - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf03.le ./sfcf03 - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf06.le ./sfcf06 - $ncp $global_lanczos_T62_ges/${prefix_sfc}.bf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgm3prep ./sigf03 - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgesprep ./sigf06 - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgp3prep ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgm3prep.le ./sigf03 - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgesprep.le ./sigf06 - $ncp $global_lanczos_T62_obs/${prefix_atm}.sgp3prep.le ./sigf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${adate} -$ncp siganl $savdir/siganl.${adate} -$ncp sfcanl.gsi $savdir/sfcanl.${adate} -$ncp satbias_out $savdir/biascr.${adate} -$ncp sfcf06 $savdir/sfcf06.${gdate} -$ncp sigf06 $savdir/sigf06.${gdate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -echo "Time before diagnostic loop is `date` " -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 sbuv2_n19 gome_metop-a omi_aura ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a hirs4_n19 amsua_n19 mhs_n19 seviri_m08 seviri_m09 seviri_m10" - for type in $listall; do - count=`ls ${tmpdir}/dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${adate} - compress diag_${type}_${string}.${adate} - $ncp diag_${type}_${string}.${adate}.Z $savdir/ - fi - done -done -echo "Time after diagnostic loop is `date` " - -exit diff --git a/regression/global_nemsio_T62.sh b/regression/global_nemsio_T62.sh deleted file mode 100755 index 8278bb365..000000000 --- a/regression/global_nemsio_T62.sh +++ /dev/null @@ -1,419 +0,0 @@ - -set -x - -# Set experiment name and analysis date -exp=$jobname - -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -#export JCAP=62 -export LEVS=64 -export JCAP_B=62 - -# Set runtime and save directories -tmpdir=$tmpdir/$tmpregdir/${exp} -savdir=$savdir/nemsio_out${JCAP}/sigmap/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "382" ]]; then - export LONA=768 - export LATA=384 - export DELTIM=180 - export resol=1 -elif [[ "$JCAP" = "62" ]]; then - export LONA=192 - export LATA=94 - export DELTIM=1200 - export resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -export NLAT=$((${LATA}+2)) - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -gdate=`date +%Y%m%d%H -d "${global_nemsio_T62_adate:0:8} ${global_nemsio_T62_adate:8:2} - 6 hours"` -hha=`echo $global_nemsio_T62_adate | cut -c9-10` -hhg=`echo $gdate | cut -c9-10` -prefix_obs=gdas1.t${hha}z -prefix_tbc=gdas1.t${hhg}z -prefix_sfc=gdas${resol}.t${hhg}z -prefix_atm=gdas${resol}.t${hha}z -prefixg=gdas1.t${hhg}z -suffix=tm00.bufr_d - -adate0=`echo $global_nemsio_T62_adate | cut -c1-8` -gdate0=`echo $gdate | cut -c1-8` - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -cd $tmpdir -rm -rf core* - -# Make gsi namelist - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_nemsio_T62_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -ICH4=${ICH4:-0} -if [ $ICH4 -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - ch4dir=${CH4DIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_nemsio_T62_adate}|cut -c1-4) - rm ./ch4globaldata.txt - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - while [ ! -s $ch4 ] ; do - ((yyyy-=1)) - ch4=$ch4dir/global_ch4_esrlctm_$yyyy.txt - done - if [ -s $ch4 ] ; then - $ncp $ch4 ./ch4globaldata.txt - fi - if [ ! -s ./ch4globaldata.txt ] ; then - echo "\./ch4globaldata.txt" not created - exit 1 - fi -fi -IN2O=${IN2O:-0} -if [ $IN2O -gt 0 ] ; then -# # Copy ch4 files to $tmpdir - n2odir=${N2ODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_nemsio_T62_adate}|cut -c1-4) - rm ./n2oglobaldata.txt - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - while [ ! -s $n2o ] ; do - ((yyyy-=1)) - n2o=$n2odir/global_n2o_esrlctm_$yyyy.txt - done - if [ -s $n2o ] ; then - $ncp $n2o ./n2oglobaldata.txt - fi - if [ ! -s ./n2oglobaldata.txt ] ; then - echo "\./n2oglobaldata.txt" not created - exit 1 - fi -fi -ICO=${ICO:-0} -if [ $ICO -gt 0 ] ; then -# # Copy CO files to $tmpdir - codir=${CODIR:-$fix_file} - yyyy=$(echo ${CDATE:-$global_nemsio_T62_adate}|cut -c1-4) - rm ./coglobaldata.txt - co=$codir/global_co_esrlctm_$yyyy.txt - while [ ! -s $co ] ; do - ((yyyy-=1)) - co=$codir/global_co_esrlctm_$yyyy.txt - done - if [ -s $co ] ; then - $ncp $co ./coglobaldata.txt - fi - if [ ! -s ./coglobaldata.txt ] ; then - echo "\./coglobaldata.txt" not created - exit 1 - fi -fi - -SETUPnems="use_gfs_nemsio=.true.," - -. $scripts/regression_nl_update.sh - -SETUP="$SETUPnems $SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh global_T62 -else - . $scripts/regression_namelists_db.sh global_T62 -fi - -##! l4dvar=.false.,nhr_assimilation=6,nhr_obsbin=6, -##! lsqrtb=.true.,lcongrad=.false.,ltlint=.true., -##! idmodel=.true.,lwrtinc=.false., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (optional) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/global_anavinfo.l64.txt -berror=$fixgsi/$endianness/global_berror.l${LEVS}y${NLAT}.f77 -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/global_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/global_pcpinfo.txt -ozinfo=$fixgsi/global_ozinfo.txt -convinfo=$fixgsi/global_convinfo_reg_test.txt -vqcdat=$fixgsi/vqctp001.dat -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -errtable=$fixgsi/prepobs_errtable.global - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $vqcdat ./vqctp001.dat -$ncp $errtable ./errtable -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -#if using correlated error, link to the covariance files -#if grep -q "Rcov" $anavinfo ; -#then -# if ls ${fixgsi}/Rcov* 1> /dev/null 2>&1; -# then -# $ncp ${fixgsi}/Rcov* . -# else -# echo "Warning: Satellite error covariance files are missing." -# echo "Check for the required Rcov files in " $anavinfo -# exit 1 -# fi -#fi - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $global_nemsio_T62_obs/${prefix_obs}.prepbufr ./prepbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.satwnd.${suffix} ./satwndbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.gpsro.${suffix} ./gpsrobufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.spssmi.${suffix} ./ssmirrbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.sptrmm.${suffix} ./tmirrbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.osbuv8.${suffix} ./sbuvbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.goesfv.${suffix} ./gsnd1bufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bamua.${suffix} ./amsuabufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bamub.${suffix} ./amsubbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bhrs2.${suffix} ./hirs2bufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bhrs3.${suffix} ./hirs3bufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bhrs4.${suffix} ./hirs4bufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bmhs.${suffix} ./mhsbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.1bmsu.${suffix} ./msubufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.airsev.${suffix} ./airsbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.sevcsr.${suffix} ./seviribufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.mtiasi.${suffix} ./iasibufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.ssmit.${suffix} ./ssmitbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.amsre.${suffix} ./amsrebufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.ssmis.${suffix} ./ssmisbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.gome.${suffix} ./gomebufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.omi.${suffix} ./omibufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.mlsbufr.${suffix} ./mlsbufr -$ncp $global_nemsio_T62_obs/${prefix_obs}.eshrs3.${suffix} ./hirs3bufrears -$ncp $global_nemsio_T62_obs/${prefix_obs}.esamua.${suffix} ./amsuabufrears -$ncp $global_nemsio_T62_obs/${prefix_obs}.esamub.${suffix} ./amsubbufrears -$ncp $global_nemsio_T62_obs/${prefix_obs}.syndata.tcvitals.tm00 ./tcvitl - -# Copy bias correction, atmospheric and surface files -$ncp $global_nemsio_T62_obs/${prefix_tbc}.abias ./satbias_in -$ncp $global_nemsio_T62_obs/${prefix_tbc}.abias_pc ./satbias_pc -$ncp $global_nemsio_T62_obs/${prefix_tbc}.satang ./satbias_angle -$ncp $global_nemsio_T62_obs/${prefix_tbc}.radstat ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -if [[ "$endianness" = "Big_Endian" ]]; then - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf03 ./sfcf03 - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf06 ./sfcf06 - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf09 ./sfcf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf03.le ./sfcf03 - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf06.le ./sfcf06 - $ncp $global_nemsio_T62_ges/${prefix_sfc}.bf09.le ./sfcf09 -fi - -if [[ "$endianness" = "Big_Endian" ]]; then - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgm3prep ./sigf03 - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgesprep ./sigf06 - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgp3prep ./sigf09 -elif [[ "$endianness" = "Little_Endian" ]]; then - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgm3prep.le ./sigf03 - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgesprep.le ./sigf06 - $ncp $global_nemsio_T62_ges/${prefix_atm}.sgp3prep.le ./sigf09 -fi - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${adate} -$ncp siganl $savdir/siganl.${adate} -$ncp sfcanl.gsi $savdir/sfcanl.${adate} -$ncp satbias_out $savdir/biascr.${adate} -$ncp sfcf06 $savdir/sfcf06.${gdate} -$ncp sigf06 $savdir/sigf06.${gdate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -echo "Time before diagnostic loop is `date` " -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 sbuv2_n19 gome_metop-a omi_aura ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a hirs4_n19 amsua_n19 mhs_n19 seviri_m08 seviri_m09 seviri_m10" - for type in $listall; do - count=`ls ${tmpdir}/dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${adate} - compress diag_${type}_${string}.${adate} - $ncp diag_${type}_${string}.${adate}.Z $savdir/ - fi - done -done -echo "Time after diagnostic loop is `date` " - -exit diff --git a/regression/hwrf_nmm_d2.sh b/regression/hwrf_nmm_d2.sh index ba7ae2552..2b4d2e1bf 100755 --- a/regression/hwrf_nmm_d2.sh +++ b/regression/hwrf_nmm_d2.sh @@ -266,7 +266,7 @@ $ncp $hwrf_nmm_ges/gdas1.t${hhg}z.sf06 ./gfs_sigf06 $ncp $hwrf_nmm_ges/gdas1.t${hhg}z.sf09 ./gfs_sigf09 # Copy ensemble forecast files for hybrid analysis -export ENSEMBLE_SIZE_REGIONAL=80 +export ENSEMBLE_SIZE_REGIONAL=10 >filelist06 n=1 while [[ $n -le ${ENSEMBLE_SIZE_REGIONAL} ]]; do @@ -314,9 +314,9 @@ esac for type in $listall; do count=`ls dir.*/${type}_${loop}* | wc -l` if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${global_T62_adate} - compress diag_${type}_${string}.${global_T62_adate} - $ncp diag_${type}_${string}.${global_T62_adate}.Z $savdir/ + cat dir.*/${type}_${loop}* > diag_${type}_${string}.${hwrf_nmm_adate} + compress diag_${type}_${string}.${hwrf_nmm_adate} + $ncp diag_${type}_${string}.${hwrf_nmm_adate}.Z $savdir/ fi done done diff --git a/regression/hwrf_nmm_d3.sh b/regression/hwrf_nmm_d3.sh index bde43050a..7b6746b74 100755 --- a/regression/hwrf_nmm_d3.sh +++ b/regression/hwrf_nmm_d3.sh @@ -264,7 +264,7 @@ $ncp $hwrf_nmm_ges/gdas1.t${hhg}z.sf06 ./gfs_sigf06 $ncp $hwrf_nmm_ges/gdas1.t${hhg}z.sf09 ./gfs_sigf09 # Copy ensemble forecast files for hybrid analysis -export ENSEMBLE_SIZE_REGIONAL=80 +export ENSEMBLE_SIZE_REGIONAL=10 >filelist06 n=1 while [[ $n -le ${ENSEMBLE_SIZE_REGIONAL} ]]; do @@ -312,9 +312,9 @@ esac for type in $listall; do count=`ls dir.*/${type}_${loop}* | wc -l` if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${global_T62_adate} - compress diag_${type}_${string}.${global_T62_adate} - $ncp diag_${type}_${string}.${global_T62_adate}.Z $savdir/ + cat dir.*/${type}_${loop}* > diag_${type}_${string}.${hwrf_nmm_adate} + compress diag_${type}_${string}.${hwrf_nmm_adate} + $ncp diag_${type}_${string}.${hwrf_nmm_adate}.Z $savdir/ fi done done diff --git a/regression/multi_regression.sh b/regression/multi_regression.sh index 106bfcf3a..b850863d6 100755 --- a/regression/multi_regression.sh +++ b/regression/multi_regression.sh @@ -1,43 +1,24 @@ #!/bin/sh --login -regtests_all="global_T62 - global_T62_ozonly - global_4dvar_T62 - global_4denvar_T126 - global_fv3_4denvar_T126 - global_fv3_4denvar_C192 - global_lanczos_T62 - arw_netcdf - arw_binary - nmm_binary - nmm_netcdf - nmmb_nems_4denvar +regtests_all="global_3dvar + global_4dvar + global_4denvar netcdf_fv3_regional + rrfs_3denvar_glbens hwrf_nmm_d2 hwrf_nmm_d3 rtma - global_enkf_T62 - global_C96_fv3aero - global_C96_fv3aerorad" + global_enkf" -regtests_debug="global_T62 - global_4dvar_T62 - global_4denvar_T126 - global_fv3_4denvar_T126 - global_fv3_4denvar_C192 - global_lanczos_T62 - arw_netcdf - arw_binary - nmm_binary - nmm_netcdf - nmmb_nems_4denvar +regtests_debug="global_3dvar + global_4dvar + global_4denvar netcdf_fv3_regional + rrfs_3denvar_glbens hwrf_nmm_d2 hwrf_nmm_d3 rtma - global_enkf_T62 - global_C96_fv3aero - global_C96_fv3aerorad" + global_enkf" # Choose which regression test to run; by default, run all regtests=${1:-$regtests_all} diff --git a/regression/netcdf_fv3_regional.sh b/regression/netcdf_fv3_regional.sh index 6838e43e4..747794fae 100755 --- a/regression/netcdf_fv3_regional.sh +++ b/regression/netcdf_fv3_regional.sh @@ -179,8 +179,9 @@ cp $fv3_netcdf_obs/ndas.t06z.satwnd.tm06.bufr_d ./satwndbufr cp $fv3_netcdf_ges/coupler.res coupler.res cp $fv3_netcdf_ges/fv_core.res.nest02.nc fv3_akbk cp $fv3_netcdf_ges/grid_spec.nest02.nc fv3_grid_spec -cp $fv3_netcdf_ges/fv_core.res.nest02.tile7.nc fv3_dynvars -cp $fv3_netcdf_ges/fv_tracer.res.nest02.tile7.nc fv3_tracer +#the current GSI parallel IO for fv3-lam require the netcdf 4 format for nc files containing 3d fields +nccopy -4 $fv3_netcdf_ges/fv_core.res.nest02.tile7.nc fv3_dynvars +nccopy -4 $fv3_netcdf_ges/fv_tracer.res.nest02.tile7.nc fv3_tracer cp $fv3_netcdf_ges/sfc_data.nest02.tile7.nc fv3_sfcdata diff --git a/regression/nmm_binary.sh b/regression/nmm_binary.sh deleted file mode 100755 index abd450728..000000000 --- a/regression/nmm_binary.sh +++ /dev/null @@ -1,320 +0,0 @@ - -set -x - -# Set analysis date -#adate=$adate_regional_nmm_binary - -# Set guess/analysis (i/o) file format. Two -# option are available: binary or netcdf -io_format=binary -##io_format=netcdf - -if [[ "$io_format" = "binary" ]]; then - NETCDF=.false. - FORMAT=binary -elif [[ "$io_format" = "netcdf" ]]; then - NETCDF=.true. - FORMAT=netcdf -else - echo "***ERRROR*** INVALID io_format = $io_format" - exit -fi - -# Set experiment name -exp=$jobname - -# Set path/file for gsi executable -#gsiexec=$updat - -# Set resoltion and other dependent parameters -#export JCAP=62 -export LEVS=60 -export JCAP_B=62 -if [[ "$io_format" = "binary" ]]; then - export LEVS=60 -elif [[ "$io_format" = "netcdf" ]]; then - export LEVS=45 -fi -export DELTIM=1200 - -# Set runtime and save directories -tmpdir=$tmpdir/tmpreg_nmm_binary/${exp} -savdir=$savdir/outreg/nmm_binary/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -CLEAN=NO -ncp=/bin/cp - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -sdate=`echo $nmm_binary_adate |cut -c1-8` -odate=`date +%Y%m%d%H -d "${nmm_binary_adate:0:8} ${nmm_binary_adate:8:2} + 12 hours"` -hha=`echo $nmm_binary_adate | cut -c9-10` -hho=`echo $odate | cut -c9-10` -prefixo=ndas.t${hho}z -prefixa=ndas.t${hha}z -suffix=tm12.bufr_d - -#datobs=$datobs_nmm_binary/$adate -#datges=$datobs - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -chgrp rstprod $tmpdir -chmod 750 $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$nmm_binary_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh nmm_binary -else - . $scripts/regression_namelists_db.sh nmm_binary -fi -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (regional only) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/anavinfo_ndas_binary -if [[ "$io_format" = "binary" ]]; then - berror=$fixgsi/$endianness/nam_nmmstat_na.gcv -elif [[ "$io_format" = "netcdf" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -fi -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/nam_regional_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/nam_global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/nam_global_pcpinfo.txt -ozinfo=$fixgsi/nam_global_ozinfo.txt -errtable=$fixgsi/nam_errtable.r3dv -convinfo=$fixgsi/nam_regional_convinfo_reg_test.txt -### add 9 tables - -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf - -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -### - -mesonetuselist=$fixgsi/nam_mesonet_uselist.txt - - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $mesonetuselist ./mesonetuselist -#### -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $nmm_binary_obs/${prefixo}.prepbufr.tm12 ./prepbufr -$ncp $nmm_binary_obs/${prefixo}.satwnd.$suffix ./satwndbufr -$ncp $nmm_binary_obs/${prefixo}.gpsro.$suffix ./gpsrobufr -$ncp $nmm_binary_obs/${prefixo}.1bhrs3.$suffix ./hirs3bufr -$ncp $nmm_binary_obs/${prefixo}.1bhrs4.$suffix ./hirs4bufr -$ncp $nmm_binary_obs/${prefixo}.1bamua.$suffix ./amsuabufr -$ncp $nmm_binary_obs/${prefixo}.1bamub.$suffix ./amsubbufr -$ncp $nmm_binary_obs/${prefixo}.1bmhs.$suffix ./mhsbufr -$ncp $nmm_binary_obs/${prefixo}.goesfv.$suffix ./gsnd1bufr -$ncp $nmm_binary_obs/${prefixo}.airsev.$suffix ./airsbufr -$ncp $nmm_binary_obs/${prefixo}.radwnd.$suffix ./radarbufr -$ncp $nmm_binary_obs/${prefixo}.nexrad.$suffix ./l2rwbufr - -# Copy bias correction, sigma, and surface files -# -# *** NOTE: The regional gsi analysis is written to (over) -# the input guess field file (wrf_inout) -# -$ncp $nmm_binary_obs/${prefixo}.satbias.tm12 ./satbias_in -$ncp $nmm_binary_obs/${prefixo}.satang.tm12 ./satbias_angle -if [[ "$io_format" = "binary" ]]; then - $ncp $nmm_binary_ges/${prefixo}.wrfinput_d01.init ./wrf_inout -elif [[ "$io_format" = "netcdf" ]]; then - $ncp $nmm_binary_ges/wrfinput_d01_nmm_netcdf ./wrf_inout -fi -cp wrf_inout wrf_ges - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir -chgrp rstprod $savdir -chmod 750 $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${nmm_binary_adate} -$ncp wrf_inout $savdir/wrfanl.${nmm_binary_adate} -$ncp satbias_out $savdir/biascr.${nmm_binary_adate} - -# If desired, copy guess file to unique filename in $savdir -$ncp wrf_ges $savdir/wrfges.${nmm_binary_adate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g10 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${nmm_binary_adate} - compress diag_${type}_${string}.${nmm_binary_adate} - $ncp diag_${type}_${string}.${nmm_binary_adate}.Z $savdir/ - fi - done -done - -exit diff --git a/regression/nmm_netcdf.sh b/regression/nmm_netcdf.sh deleted file mode 100755 index a1e687910..000000000 --- a/regression/nmm_netcdf.sh +++ /dev/null @@ -1,317 +0,0 @@ - -set -x - -# Set experiment name and analysis date -exp=$jobname - -# Set analysis date -#adate=$adate_regional - -# Set guess/analysis (i/o) file format. Two -# option are available: binary or netcdf -##io_format=binary -io_format=netcdf - -if [[ "$io_format" = "binary" ]]; then - NETCDF=.false. - FORMAT=binary -elif [[ "$io_format" = "netcdf" ]]; then - NETCDF=.true. - FORMAT=netcdf -else - echo "***ERRROR*** INVALID io_format = $io_format" - exit -fi - -# Set experiment name -#exp=$exp1_nmm_netcdf_updat - -# Set path/file for gsi executable -#gsiexec=$updat - -# Set resoltion and other dependent parameters -#export JCAP=62 -export LEVS=60 -export JCAP_B=$JCAP -if [[ "$io_format" = "binary" ]]; then - export LEVS=60 -elif [[ "$io_format" = "netcdf" ]]; then - export LEVS=45 -fi -export DELTIM=1200 - -# Set runtime and save directories -tmpdir=$tmpdir/tmpreg_nmm_netcdf/${exp} -savdir=$savdir/outreg/nmm_netcdf/${exp} - -# Specify GSI fixed field and data directories. -fixcrtm=${fixcrtm:-$CRTM_FIX} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -CLEAN=NO -ncp=/bin/cp - -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -sdate=`echo $nmm_netcdf_adate |cut -c1-8` -odate=`date +%Y%m%d%H -d "${nmm_netcdf_adate:0:8} ${nmm_netcdf_adate:8:2} + 12 hours"` -hha=`echo $nmm_netcdf_adate | cut -c9-10` -hho=`echo $odate | cut -c9-10` -prefixo=ndas.t${hho}z -prefixa=ndas.t${hha}z -suffix=tm12.bufr_d - -#datobs=$datobs_nmm_netcdf/$adate -#datges=$datges_nmm_netcdf/$adate - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -chgrp rstprod $tmpdir -chmod 750 $tmpdir -cd $tmpdir -rm -rf core* - -# CO2 namelist and file decisions -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $tmpdir - co2dir=${CO2DIR:-$fixgsi} - yyyy=$(echo ${CDATE:-$nmm_netcdf_adate}|cut -c1-4) - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - if [ -s $co2 ] ; then - $ncp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh nmm_netcdf -else - . $scripts/regression_namelists_db.sh nmm_netcdf -fi -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# cloudyinfo = text file with information about assimilation of cloudy radiance -# satangl = angle dependent bias correction file (fixed in time) -# atmsbeamdat = data required for atms spatial averaging -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (regional only) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) - -anavinfo=$fixgsi/anavinfo_ndas_netcdf -if [[ "$io_format" = "binary" ]]; then - berror=$fixgsi/$endianness/nam_nmmstat_na.gcv -elif [[ "$io_format" = "netcdf" ]]; then - berror=$fixgsi/$endianness/nam_glb_berror.f77.gcv -fi -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/nam_regional_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -satangl=$fixgsi/nam_global_satangbias.txt -atmsbeamdat=$fixgsi/atms_beamwidth.txt -pcpinfo=$fixgsi/nam_global_pcpinfo.txt -ozinfo=$fixgsi/nam_global_ozinfo.txt -errtable=$fixgsi/nam_errtable.r3dv -convinfo=$fixgsi/nam_regional_convinfo_reg_test.txt -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -mesonetuselist=$fixgsi/nam_mesonet_uselist.txt - - -# Only need this file for single obs test -bufrtable=$fixgsi/prepobs_prep.bufrtable - -# Only need this file for sst retrieval -bftab_sst=$fixgsi/bufrtab.012 - - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -$ncp $anavinfo ./anavinfo -$ncp $berror ./berror_stats -$ncp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -$ncp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -$ncp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -$ncp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -$ncp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -$ncp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -$ncp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -$ncp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -$ncp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -$ncp $aercoef ./AerosolCoeff.bin -$ncp $cldcoef ./CloudCoeff.bin -$ncp $satangl ./satbias_angle -$ncp $atmsbeamdat ./atms_beamwidth.txt -$ncp $satinfo ./satinfo -$ncp $cloudyinfo ./cloudy_radiance_info.txt -$ncp $scaninfo ./scaninfo -$ncp $pcpinfo ./pcpinfo -$ncp $ozinfo ./ozinfo -$ncp $convinfo ./convinfo -$ncp $errtable ./errtable -$ncp $mesonetuselist ./mesonetuselist -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - - -$ncp $bufrtable ./prepobs_prep.bufrtable -$ncp $bftab_sst ./bftab_sstphr - -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - $ncp $fixcrtm/${file}.SpcCoeff.bin ./ - $ncp $fixcrtm/${file}.TauCoeff.bin ./ -done - -# Copy observational data to $tmpdir -$ncp $nmm_netcdf_obs/${prefixo}.prepbufr.tm12 ./prepbufr -$ncp $nmm_netcdf_obs/${prefixo}.satwnd.$suffix ./satwndbufr -$ncp $nmm_netcdf_obs/${prefixo}.1bhrs3.$suffix ./hirs3bufr -$ncp $nmm_netcdf_obs/${prefixo}.1bhrs4.$suffix ./hirs4bufr -$ncp $nmm_netcdf_obs/${prefixo}.1bamua.$suffix ./amsuabufr -$ncp $nmm_netcdf_obs/${prefixo}.1bamub.$suffix ./amsubbufr -$ncp $nmm_netcdf_obs/${prefixo}.1bmhs.$suffix ./mhsbufr -$ncp $nmm_netcdf_obs/${prefixo}.goesfv.$suffix ./gsnd1bufr -$ncp $nmm_netcdf_obs/${prefixo}.airsev.$suffix ./airsbufr -$ncp $nmm_netcdf_obs/${prefixo}.radwnd.$suffix ./radarbufr -$ncp $nmm_netcdf_obs/${prefixo}.nexrad.$suffix ./l2rwbufr - -# Copy bias correction and atmosphere/surface guess files -# -# *** NOTE: The regional gsi analysis is written to (over) -# the input guess field file (wrf_inout) -# -$ncp $nmm_netcdf_obs/${prefixa}.satbias.tm03 ./satbias_in -$ncp $nmm_netcdf_obs/${prefixa}.satang.tm03 ./satbias_angle -if [[ "$io_format" = "binary" ]]; then - $ncp $nmm_netcdf_ges/${prefixa}.wrfrst_d01.tm12 ./wrf_inout -elif [[ "$io_format" = "netcdf" ]]; then - $ncp $nmm_netcdf_ges/wrfinput_d01_nmm_netcdf ./wrf_inout -fi -cp wrf_inout wrf_ges - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc - -# Save output -mkdir -p $savdir -chgrp rstprod $savdir -chmod 750 $savdir - -cat stdout fort.2* > $savdir/stdout.anl.${nmm_netcdf_adate} -$ncp wrf_inout $savdir/wrfanl.${nmm_netcdf_adate} -$ncp satbias_out $savdir/biascr.${nmm_netcdf_adate} - -# If desired, copy guess file to unique filename in $savdir -$ncp wrf_ges $savdir/wrfges.${nmm_netcdf_adate} - -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -cd $tmpdir -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below - listall="hirs2_n14 msu_n14 sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g10 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" - for type in $listall; do - count=`ls dir.*/${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat dir.*/${type}_${loop}* > diag_${type}_${string}.${nmm_netcdf_adate} - compress diag_${type}_${string}.${nmm_netcdf_adate} - $ncp diag_${type}_${string}.${nmm_netcdf_adate}.Z $savdir/ - fi - done -done - -exit diff --git a/regression/nmmb_nems_4denvar.sh b/regression/nmmb_nems_4denvar.sh deleted file mode 100755 index 2a6e8ef66..000000000 --- a/regression/nmmb_nems_4denvar.sh +++ /dev/null @@ -1,238 +0,0 @@ - -set -x - -# Set analysis date -#adate=2015061000 - -# Set experiment name -exp=$jobname - -# Set runtime and save directories -tmpdir=$tmpdir/tmpreg_nmmb_nems_4denvar/${exp} -savdir=$savdir/outreg_nmmb_nems_4denvar/${exp} - -# Set variables used in script -# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) -# ncp is cp replacement, currently keep as /bin/cp - -UNCOMPRESS=gunzip -CLEAN=NO -ncp=/bin/cp - - -# Set up $tmpdir -rm -rf $tmpdir -mkdir -p $tmpdir -chgrp rstprod $tmpdir -chmod 750 $tmpdir -cd $tmpdir - -#FIXnam=/da/save/Michael.Lueken/trunk/fix -fixcrtm=${fixcrtm:-$CRTM_FIX} - -berror=$fixgsi/nam_nmm_berror.f77.gcv -anavinfo=$fixgsi/anavinfo_nems_nmmb - - -# Make gsi namelist - -. $scripts/regression_nl_update.sh - -SETUP="$SETUP_update" -GRIDOPTS="$GRIDOPTS_update" -BKGVERR="$BKGVERR_update" -ANBKGERR="$ANBKERR_update" -JCOPTS="$JCOPTS_update" -STRONGOPTS="$STRONGOPTS_update" -OBSQC="$OBSQC_update" -OBSINPUT="$OBSINPUT_update" -SUPERRAD="$SUPERRAD_update" -HYBRID_ENSEMBLE='ensemble_path="",' -SINGLEOB="$SINGLEOB_update" - -if [ "$debug" = ".false." ]; then - . $scripts/regression_namelists.sh nems_nmmb_4denvar -else - . $scripts/regression_namelists_db.sh nems_nmmb_4denvar -fi - -# dmesh(1)=120.0,time_window_max=1.5,ext_sonde=.true., - -cat << EOF > gsiparm.anl - -$gsi_namelist - -EOF - -emiscoef_IRwater=$fixcrtm/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=$fixcrtm/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=$fixcrtm/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=$fixcrtm/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=$fixcrtm/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=$fixcrtm/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=$fixcrtm/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=$fixcrtm/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=$fixcrtm/FASTEM6.MWwater.EmisCoeff.bin -aercoef=$fixcrtm/AerosolCoeff.bin -cldcoef=$fixcrtm/CloudCoeff.bin -satinfo=$fixgsi/nam_regional_satinfo.txt -cloudyinfo=$fixgsi/cloudy_radiance_info.txt -scaninfo=$fixgsi/global_scaninfo.txt -pcpinfo=$fixgsi/nam_global_pcpinfo.txt -ozinfo=$fixgsi/nam_global_ozinfo.txt -errtable=$fixgsi/nam_errtable.r3dv -convinfo=$fixgsi/nam_regional_convinfo.txt -mesonetuselist=$fixgsi/nam_mesonet_uselist.txt -stnuselist=$fixgsi/nam_mesonet_stnuselist.txt -qdaylist=$fixgsi/rtma_q_day_rejectlist -qnightlist=$fixgsi/rtma_q_night_rejectlist -tdaylist=$fixgsi/rtma_t_day_rejectlist -tnightlist=$fixgsi/rtma_t_night_rejectlist -wbinuselist=$fixgsi/rtma_wbinuselist -locinfo=$fixgsi/nam_hybens_d01_locinfo -### add 9 tables -errtable_pw=$fixgsi/prepobs_errtable_pw.global -errtable_ps=$fixgsi/prepobs_errtable_ps.global_nqcf -errtable_t=$fixgsi/prepobs_errtable_t.global_nqcf -errtable_q=$fixgsi/prepobs_errtable_q.global_nqcf -errtable_uv=$fixgsi/prepobs_errtable_uv.global_nqcf -btable_ps=$fixgsi/nqc_b_ps.global_nqcf -btable_t=$fixgsi/nqc_b_t.global_nqcf -btable_q=$fixgsi/nqc_b_q.global_nqcf -btable_uv=$fixgsi/nqc_b_uv.global_nqcf - -# add vertical profile of localization and beta_s,beta_e weights for hybrid ensemble runs -hybens_info=$fixgsi/nam_hybens_d01_info - - -# Copy executable and fixed files to $tmpdir -if [[ $exp == *"updat"* ]]; then - $ncp $gsiexec_updat ./gsi.x -elif [[ $exp == *"contrl"* ]]; then - $ncp $gsiexec_contrl ./gsi.x -fi - -cp $anavinfo ./anavinfo -cp $berror ./berror_stats -cp $errtable ./errtable -cp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -cp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -cp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -cp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -cp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -cp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -cp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -cp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -cp $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -cp $aercoef ./AerosolCoeff.bin -cp $cldcoef ./CloudCoeff.bin -cp $satinfo ./satinfo -cp $cloudyinfo ./cloudy_radiance_info.txt -cp $scaninfo ./scaninfo -cp $pcpinfo ./pcpinfo -cp $ozinfo ./ozinfo -cp $convinfo ./convinfo -cp $mesonetuselist ./mesonetuselist -cp $stnuselist ./mesonet_stnuselist -cp $qdaylist ./q_day_rejectlist -cp $qnightlist ./q_night_rejectlist -cp $tdaylist ./t_day_rejectlist -cp $tnightlist ./t_night_rejectlist -cp $wbinuselist ./wbinuselist -#cp $locinfo ./hybens_info -#add 9 tables for new varqc -$ncp $errtable_pw ./errtable_pw -$ncp $errtable_ps ./errtable_ps -$ncp $errtable_t ./errtable_t -$ncp $errtable_q ./errtable_q -$ncp $errtable_uv ./errtable_uv -$ncp $btable_ps ./btable_ps -$ncp $btable_t ./btable_t -$ncp $btable_q ./btable_q -$ncp $btable_uv ./btable_uv - -$ncp $hybens_info ./hybens_info - - -###### crtm coeff's ####################### -set +x -for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do - cp $fixcrtm/${file}.SpcCoeff.bin ./ - cp $fixcrtm/${file}.TauCoeff.bin ./ -done -set -x - -PDY=`echo $adate | cut -c1-8` -CYC=`echo $adate | cut -c9-10` - -#datdir=/meso/noscrub/Wanshu.Wu/CASE/$adate - -cp $nmmb_nems_4denvar_obs/nam.t00z.radwnd.tm00.bufr_d ./radarbufr -cp $nmmb_nems_4denvar_obs/nam.t00z.nexrad.tm00.bufr_d ./l2rwbufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.prepbufr ./prepbufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.mtiasi.tm00.bufr_d ./iasibufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.gpsro.tm00.bufr_d ./gpsrobufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.1bamua.tm00.bufr_d ./amsuabufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.esamua.tm00.bufr_d ./amsuabufrears -cp $nmmb_nems_4denvar_obs/gdas1.t00z.1bmhs.tm00.bufr_d ./mhsbufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.1bhrs4.tm00.bufr_d ./hirs4bufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.goesfv.tm00.bufr_d ./gsnd1bufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.airsev.tm00.bufr_d ./airsbufr -cp $nmmb_nems_4denvar_obs/gdas1.t00z.satwnd.tm00.bufr_d ./satwndbufr - - cp $nmmb_nems_4denvar_ges/wrf_inout03 . - cp $nmmb_nems_4denvar_ges/wrf_inout06 . - cp $nmmb_nems_4denvar_ges/wrf_inout09 . - -cp $nmmb_nems_4denvar_ges/ndas.t00z.satbiaspc.tm03 ./satbias_pc -cp $nmmb_nems_4denvar_ges/ndas.t00z.satbiasc.tm03 ./satbias_in -cp $nmmb_nems_4denvar_ges/ndas.t00z.radstat.tm03 ./radstat.gdas - -listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` -for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameanl=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameanl -done - -cp $nmmb_nems_4denvar_ges/rtma2p5.t00z.w_rejectlist ./w_rejectlist -cp $nmmb_nems_4denvar_ges/rtma2p5.t00z.t_rejectlist ./t_rejectlist -cp $nmmb_nems_4denvar_ges/rtma2p5.t00z.p_rejectlist ./p_rejectlist -cp $nmmb_nems_4denvar_ges/rtma2p5.t00z.q_rejectlist ./q_rejectlist - -##### connect with gefs ensemble ################# -#gdate=`date +%Y%m%d%H -d "${adate:0:8} ${adate:8:2} - 6 hours"` -#cycg=`echo $gdate | cut -c9-10` -ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr06_ensmean > filelist06 -#typeset -Z2 nsum - nsum=1 - while [[ $nsum -lt 10 ]]; do - ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr06s_mem00$nsum >> filelist06 - nsum=`expr $nsum + 1` - done -ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr03_ensmean > filelist03 - nsum=1 - while [[ $nsum -lt 10 ]]; do - ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr03s_mem00$nsum >> filelist03 - nsum=`expr $nsum + 1` - done -ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr09_ensmean > filelist09 - nsum=1 - while [[ $nsum -lt 10 ]]; do - ls $nmmb_nems_4denvar_ges/sfg_2015060918_fhr09s_mem00$nsum >> filelist09 - nsum=`expr $nsum + 1` - done - - -##### connect with gdas for ozges ################ - cp $nmmb_nems_4denvar_ges/gdas1.t18z.sf06 ./gfs_sigf06 - -# Run GSI -cd $tmpdir -echo "run gsi now" -eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" -rc=$? -exit $rc diff --git a/regression/regression_driver.sh b/regression/regression_driver.sh index 08f015481..e1d3b18dc 100755 --- a/regression/regression_driver.sh +++ b/regression/regression_driver.sh @@ -5,6 +5,11 @@ set -x # regression test to launch export regtest=$1 +# option to set local values with a config file +if [ -d "$config_path" ]; then + source $config_path/local_vars.sh +fi + # source the necessary files to setup if [ "$#" -eq 2 ]; then export regdir=$2 @@ -42,7 +47,6 @@ for jn in `seq ${RSTART} ${REND}`; do $scripts/regression_wait.sh ${job[$jn]} ${rcname} $check_resource rc=$? if [ $rc -ne 0 ]; then - rm -f ${rcname} exit 1 fi done @@ -51,7 +55,7 @@ if [ "$debug" == ".false." ]; then export scripts=${scripts_updat:-$scripts} - if [ $regtest = 'global_enkf_T62' ]; then + if [ $regtest = 'global_enkf' ]; then /bin/sh $scripts/regression_test_enkf.sh ${job[1]} ${job[2]} ${job[3]} ${job[4]} ${tmpregdir} ${result} ${scaling[1]} ${scaling[2]} ${scaling[3]} else /bin/sh $scripts/regression_test.sh ${job[1]} ${job[2]} ${job[3]} ${job[4]} ${tmpregdir} ${result} ${scaling[1]} ${scaling[2]} ${scaling[3]} diff --git a/regression/regression_namelists.sh b/regression/regression_namelists.sh index 2d0e10f3d..7facc2770 100755 --- a/regression/regression_namelists.sh +++ b/regression/regression_namelists.sh @@ -2,28 +2,39 @@ regtest=$1 case $regtest in - global_T62) + global_3dvar) # Define namelist for global run (pcgsoi minimization) export gsi_namelist=" &SETUP - miter=2,niter(1)=100,niter(2)=150, - niter_no_qc(1)=50,niter_no_qc(2)=0, + miter=2,niter(1)=5,niter(2)=10, + niter_no_qc(1)=2,niter_no_qc(2)=0, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=82,qoption=2,cwoption=3, - factqmin=5.0,factqmax=5.0,deltim=$DELTIM, + qoption=2, + gencode=0,factqmin=0.5,factqmax=0.0002,deltim=$DELTIM, iguess=-1, oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., + use_pbl=.false.,use_compress=.true.,nsig_ext=45,gpstop=50., + commgpstop=45.,commgpserrinf=1.0, use_gfs_nemsio=.false.,lrun_subdirs=.true., + use_readin_anl_sfcmask=.true., + crtm_coeffs_path='./crtm_coeffs/', + newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., + diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, + verbose=.false.,imp_physics=11,lupp=.true., + binary_diag=.false.,netcdf_diag=.true., + lobsdiag_forenkf=.false., + nhr_anal=3,6,9,nhr_obsbin=3, + cao_check=.true.,ta2tb=.false., + tzr_qc=1,sfcnst_comb=.true., write_fv3_incr=.true.,incvars_to_zero= 'liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_inc',incvars_zero_strat='sphum_inc','liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_inc',incvars_efold=5, use_gfs_ncio=.true., $SETUP / &GRIDOPTS JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS + regional=.false., + $GRIDOPTS / &BKGERR vs=0.7, @@ -31,109 +42,143 @@ export gsi_namelist=" hswgt=0.45,0.3,0.25, bw=0.0,norsp=4, bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, + bkgv_write=.false., + cwcoveqqcov=.false., $BKGVERR / &ANBKGERR anisotropic=.false., - $ANBKGERR + $ANBKGERR / &JCOPTS ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, + ljc4tlevs=.true., $JCOPTS / &STRONGOPTS - tlnmc_option=1,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., + tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, + baldiag_full=.false.,baldiag_inc=.false., $STRONGOPTS / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true., + dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, + use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.false.,nvqc=.true.,hub_norm=.true., + aircraft_t_bc=.true.,biaspredt=1.0e5,upd_aircraft=.true.,cleanup_tail=.true., + tcp_width=70.0,tcp_ermax=7.35, $OBSQC / &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,time_window_max=3.0, + dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.0,dmesh(4)=500.0,time_window_max=3.0, $OBSINPUT / OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null l3rw 0.0 0 0 - l2rwbufr rw null l2rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - amsuabufr amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis_las f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_uas f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_img f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_env f16 ssmis_f16 0.0 1 0 - gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 - iasibufr iasi metop-b iasi_metop-b 0.0 1 0 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 - atmsbufr atms n20 atms_n20 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - oscatbufr uv null uv 0.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 - abibufr abi g16 abi_g16 0.0 1 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 +! dfile dtype dplat dsis dval dthin dsfcalc + prepbufr ps null ps 0.0 0 0 + prepbufr t null t 0.0 0 0 + prepbufr_profl t null t 0.0 0 0 + hdobbufr t null t 0.0 0 0 + prepbufr q null q 0.0 0 0 + prepbufr_profl q null q 0.0 0 0 + hdobbufr q null q 0.0 0 0 + prepbufr pw null pw 0.0 0 0 + prepbufr uv null uv 0.0 0 0 + prepbufr_profl uv null uv 0.0 0 0 + satwndbufr uv null uv 0.0 0 0 + hdobbufr uv null uv 0.0 0 0 + prepbufr spd null spd 0.0 0 0 + hdobbufr spd null spd 0.0 0 0 + prepbufr dw null dw 0.0 0 0 + radarbufr rw null rw 0.0 0 0 + nsstbufr sst nsst sst 0.0 0 0 + gpsrobufr gps_bnd null gps 0.0 0 0 + sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 + sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 + sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 + hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 + hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 + gimgrbufr goes_img g11 imgr_g11 0.0 1 0 + gimgrbufr goes_img g12 imgr_g12 0.0 1 0 + airsbufr airs aqua airs_aqua 0.0 1 1 + amsuabufr amsua n15 amsua_n15 0.0 1 1 + amsuabufr amsua n18 amsua_n18 0.0 1 1 + amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 + airsbufr amsua aqua amsua_aqua 0.0 1 1 + amsubbufr amsub n17 amsub_n17 0.0 1 1 + mhsbufr mhs n18 mhs_n18 0.0 1 1 + mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 + ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 + amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 + amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 + amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 + ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 + ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 + ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 + gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 + gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 + gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 + gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 + gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 + gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 + gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 + gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 + gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 + gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 + gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 + gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 + iasibufr iasi metop-a iasi_metop-a 0.0 1 1 + gomebufr gome metop-a gome_metop-a 0.0 2 0 + omibufr omi aura omi_aura 0.0 2 0 + sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 + hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 + amsuabufr amsua n19 amsua_n19 0.0 1 1 + mhsbufr mhs n19 mhs_n19 0.0 1 1 + tcvitl tcp null tcp 0.0 0 0 + seviribufr seviri m08 seviri_m08 0.0 1 0 + seviribufr seviri m09 seviri_m09 0.0 1 0 + seviribufr seviri m10 seviri_m10 0.0 1 0 + seviribufr seviri m11 seviri_m11 0.0 1 0 + hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 1 + amsuabufr amsua metop-b amsua_metop-b 0.0 1 1 + mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 + iasibufr iasi metop-b iasi_metop-b 0.0 1 1 + gomebufr gome metop-b gome_metop-b 0.0 2 0 + atmsbufr atms npp atms_npp 0.0 1 1 + atmsbufr atms n20 atms_n20 0.0 1 1 + crisbufr cris npp cris_npp 0.0 1 0 + crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 + crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 + gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 + gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 + gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 + gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 + gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 + gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 + gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 + gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 + oscatbufr uv null uv 0.0 0 0 + mlsbufr mls30 aura mls30_aura 0.0 0 0 + avhambufr avhrr metop-a avhrr3_metop-a 0.0 4 0 + avhpmbufr avhrr n18 avhrr3_n18 0.0 4 0 + avhambufr avhrr metop-b avhrr3_metop-b 0.0 4 0 + avhambufr avhrr metop-c avhrr3_metop-c 0.0 4 0 + avhpmbufr avhrr n19 avhrr3_n19 0.0 4 0 + amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 + gmibufr gmi gpm gmi_gpm 0.0 1 0 + saphirbufr saphir meghat saphir_meghat 0.0 3 0 + ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 + abibufr abi g16 abi_g16 0.0 1 0 + abibufr abi g17 abi_g17 0.0 1 0 + rapidscatbufr uv null uv 0.0 0 0 + ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 + ompslpbufr ompslp npp ompslp_npp 0.0 0 0 + ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 + ompsnpbufr ompsnp n20 ompsnp_n20 0.0 0 0 + ompstcbufr ompstc8 n20 ompstc8_n20 0.0 2 0 + amsuabufr amsua metop-c amsua_metop-c 0.0 1 1 + mhsbufr mhs metop-c mhs_metop-c 0.0 1 1 + iasibufr iasi metop-c iasi_metop-c 0.0 1 1 + sstviirs viirs-m npp viirs-m_npp 0.0 4 0 + sstviirs viirs-m j1 viirs-m_j1 0.0 4 0 abibufr abi g18 abi_g18 0.0 1 0 ahibufr ahi himawari9 ahi_himawari9 0.0 1 0 atmsbufr atms n21 atms_n21 0.0 1 1 @@ -144,127 +189,33 @@ OBS_INPUT:: gomebufr gome metop-c gome_metop-c 0.0 2 0 :: &SUPEROB_RADAR - $SUPERRAD + $SUPERRAD / - &LAG_DATA + &LAG_DATA + / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_GLOBAL}, - n_ens=${ENSEMBLE_SIZE_GLOBAL}, - uv_hyb_ens=${HYBENS_UV_GLOBAL}, - beta_s0=${BETA_S0_GLOBAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_GLOBAL}, - s_ens_v=${HYBENS_VER_SCALE_GLOBAL}, - generate_ens=${GENERATE_ENS_GLOBAL}, - aniso_a_en=${HYBENS_ANISO_GLOBAL}, - nlon_ens=${LONA}, - nlat_ens=${NLAT}, - jcap_ens=${JCAP}, - jcap_ens_test=${JCAP}, + &HYBRID_ENSEMBLE + $HYBRIDENSEMBLE / - &RAPIDREFRESH_CLDSURF + &RAPIDREFRESH_CLDSURF dfi_radar_latent_heat_time_period=30.0, + / - &CHEM + &CHEM + + / + &NST + nst_gsi=3,nstinfo=4,zsea1=0,zsea2=0,fac_dtl=1,fac_tsl=1, / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${adate}, + oblat=5.,oblon=180.,obpres=850.,obdattim=2022110900, obhourset=0., - $SINGLEOB - / - &NST - / -" -;; - - global_T62_ozonly) - -# Define namelist for global run (ozone analysis) - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=100,niter(2)=150, - niter_no_qc(1)=999,niter_no_qc(2)=999, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=82,qoption=2, - print_diag_pcg=.true., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - vs=0.7, - hzscl=0.588,1.25,2.0, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - $JCOPTS - / - &STRONGOPTS - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02,blacklst=.true., - use_poq7=.true.,njqc=.false.,vqc=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=180.0,dmesh(2)=145.0,dmesh(3)=240.0,dmesh(4)=160.0,dmesh(5)=180.0,dmesh(6)=150.0,time_window_max=3.0, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 - ompsnpbufr ompsnp n20 ompsnp_n20 0.0 0 0 - ompstcbufr ompstc8 n20 ompstc8_n20 0.0 2 0 - ompsnpbufr ompsnp n21 ompsnp_n21 0.0 0 0 - ompstcbufr ompstc8 n21 ompstc8_n21 0.0 2 0 - ompslpbufr ompslp npp ompslp_npp 0.0 0 0 - gomebufr gome metop-c gome_metop-c 0.0 2 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - / - &CHEM - / - &SINGLEOB_TEST - $SINGLEOB - / - &NST / " ;; - global_lanczos_T62) + global_lanczos) # Define namelist for global run (lanczos minimization) @@ -279,8 +230,9 @@ export gsi_namelist=" iguess=-1, oneobtest=.false.,retrieval=.false.,l_foto=.false., use_pbl=.false.,use_compress=.false.,nsig_ext=10,gpstop=30., + crtm_coeffs_path='./crtm_coeffs/', lsqrtb=.true.,lcongrad=.true.,ltlint=.true.,ladtest=.true.,lgrtest=.false., - use_gfs_nemsio=.false.,lrun_subdirs=.true., + use_gfs_nemsio=.false.,lrun_subdirs=.true.,use_gfs_ncio=.true., $SETUP / &GRIDOPTS @@ -310,7 +262,7 @@ export gsi_namelist=" $STRONGOPTS / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, + dfact=0.75,dfact1=3.0,noiqc=.false.,oberrflg=.false.,c_varqc=0.02, use_poq7=.true.,njqc=.false.,vqc=.true., $OBSQC / @@ -426,6 +378,7 @@ OBS_INPUT:: &NST / " + ;; global_hybrid_T126) @@ -587,7 +540,7 @@ OBS_INPUT:: $LAGDATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=20,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, + l_hyb_ens=.true.,n_ens=$ENS_NUM_ANAL,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.true.,readin_localization=.true., write_ens_sprd=.false., $HYBRID_ENSEMBLE @@ -609,61 +562,77 @@ OBS_INPUT:: " ;; - global_4denvar_T126 ) + global_4denvar ) # Define namelist for global hybrid run -export gsi_namelist=" +export gsi_namelist=" &SETUP - miter=1,niter(1)=5,niter(2)=150, - niter_no_qc(1)=50,niter_no_qc(2)=0, - use_gfs_nemsio=.true., - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,lwrite4danl=.true., - tzr_qc=1, + miter=2,niter(1)=5,niter(2)=10, + niter_no_qc(1)=2,niter_no_qc(2)=0, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2,cwoption=3, - gencode=82,factqmin=0.1,factqmax=0.1,deltim=$DELTIM, + qoption=2, + gencode=0,factqmin=0.5,factqmax=0.0002,deltim=$DELTIM, iguess=-1, oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_prepb_satwnd=.false., - nhr_assimilation=6,lrun_subdirs=.true., + use_pbl=.false.,use_compress=.true.,nsig_ext=45,gpstop=50., + commgpstop=45.,commgpserrinf=1.0, + use_gfs_nemsio=.false.,lrun_subdirs=.true., + use_readin_anl_sfcmask=.true., + crtm_coeffs_path='./crtm_coeffs/', + newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., + diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, + verbose=.false.,imp_physics=11,lupp=.true., + binary_diag=.false.,netcdf_diag=.true., + lobsdiag_forenkf=.false., + nhr_anal=3,6,9,nhr_obsbin=1, + l4densvar=.true.,ens_nstarthr=3,nhr_assimilation=6,lwrite4danl=.true., + cao_check=.true.,ta2tb=.false., + tzr_qc=1,sfcnst_comb=.true., + write_fv3_incr=.true.,incvars_to_zero= 'liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_inc', + incvars_zero_strat='sphum_inc','liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_inc',incvars_efold=5, use_gfs_ncio=.true., $SETUP / &GRIDOPTS - JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS + JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, + regional=.false., + $GRIDOPTS / &BKGERR + vs=0.7, hzscl=1.7,0.8,0.5, hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, bkgv_write=.false., + cwcoveqqcov=.false., $BKGVERR / &ANBKGERR anisotropic=.false., - $ANBKGERR + $ANBKGERR / &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7,ljc4tlevs=.true., + ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, + ljc4tlevs=.true., $JCOPTS / &STRONGOPTS tlnmc_option=3,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., + + baldiag_full=.false.,baldiag_inc=.false., $STRONGOPTS / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true.,aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true., + dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, + use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.false.,nvqc=.true.,hub_norm=.true., + aircraft_t_bc=.true.,biaspredt=1.0e5,upd_aircraft=.true.,cleanup_tail=.true., + tcp_width=70.0,tcp_ermax=7.35, $OBSQC / &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,time_window_max=3.0, + dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.0,dmesh(4)=500.0,time_window_max=3.0, $OBSINPUT / OBS_INPUT:: @@ -671,19 +640,21 @@ OBS_INPUT:: prepbufr ps null ps 0.0 0 0 prepbufr t null t 0.0 0 0 prepbufr_profl t null t 0.0 0 0 + hdobbufr t null t 0.0 0 0 prepbufr q null q 0.0 0 0 prepbufr_profl q null q 0.0 0 0 + hdobbufr q null q 0.0 0 0 prepbufr pw null pw 0.0 0 0 prepbufr uv null uv 0.0 0 0 prepbufr_profl uv null uv 0.0 0 0 satwndbufr uv null uv 0.0 0 0 + hdobbufr uv null uv 0.0 0 0 prepbufr spd null spd 0.0 0 0 + hdobbufr spd null spd 0.0 0 0 prepbufr dw null dw 0.0 0 0 radarbufr rw null rw 0.0 0 0 nsstbufr sst nsst sst 0.0 0 0 gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 @@ -706,200 +677,6 @@ OBS_INPUT:: ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - ssmisbufr ssmis f19 ssmis_f19 0.0 1 0 - gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 1 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 1 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 - iasibufr iasi metop-b iasi_metop-b 0.0 1 1 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 - gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 - gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 - gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - oscatbufr uv null uv 0.0 0 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 - avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 - amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 - gmibufr gmi gpm gmi_gpm 0.0 3 0 - saphirbufr saphir meghat saphir_meghat 0.0 3 0 - rapidscatbufr uv null uv 0.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 - abibufr abi g16 abi_g16 0.0 1 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 - abibufr abi g18 abi_g18 0.0 1 0 - ahibufr ahi himawari9 ahi_himawari9 0.0 1 0 - atmsbufr atms n21 atms_n21 0.0 1 1 - crisfsbufr cris-fsr n21 cris-fsr_n21 0.0 1 0 - sstviirs viirs-m j2 viirs-m_j2 0.0 4 0 - ompsnpbufr ompsnp n21 ompsnp_n21 0.0 0 0 - ompstcbufr ompstc8 n21 ompstc8_n21 0.0 2 0 - gomebufr gome metop-c gome_metop-c 0.0 2 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - $LAGDATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=20,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, - nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.true.,readin_localization=.true., - write_ens_sprd=.false., - $HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T670_adate}, - obhourset=0., - $SINGLEOB - / - &NST - nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=5, - $NST - / -" -;; - - global_fv3_4denvar_T126 ) - -# Define namelist for global hybrid run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=5,niter(2)=5, - niter_no_qc(1)=2,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=82,factqmin=0.5,factqmax=0.005,deltim=1200, - iguess=-1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., - use_gfs_nemsio=.true.,lrun_subdirs=.true.,use_readin_anl_sfcmask=.true., - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, - verbose=.false.,imp_physics=11,lupp=.true.,binary_diag=.false.,netcdf_diag=.true., - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,nhr_assimilation=6,lwrite4danl=.false., tzr_qc=1,sfcnst_comb=.true., - $SETUP - / - &GRIDOPTS - JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7,ljc4tlevs=.true., - $JCOPTS - / - &STRONGOPTS - tlnmc_option=3,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.false.,baldiag_inc=.false., - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.true., - aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true.,cleanup_tail=.true. - $OBSQC - / - &OBS_INPUT - dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.0,time_window_max=3.0, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr_profl t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr_profl q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr_profl uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - nsstbufr sst nsst sst 0.0 0 0 - gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - amsuabufr amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 - ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - ssmisbufr ssmis f19 ssmis_f19 0.0 1 0 gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 @@ -944,14 +721,28 @@ OBS_INPUT:: gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 oscatbufr uv null uv 0.0 0 0 mlsbufr mls30 aura mls30_aura 0.0 0 0 - avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 - avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 + avhambufr avhrr metop-a avhrr3_metop-a 0.0 4 0 + avhpmbufr avhrr n18 avhrr3_n18 0.0 4 0 + avhambufr avhrr metop-b avhrr3_metop-b 0.0 4 0 + avhambufr avhrr metop-c avhrr3_metop-c 0.0 4 0 + avhpmbufr avhrr n19 avhrr3_n19 0.0 4 0 amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 - gmibufr gmi gpm gmi_gpm 0.0 3 0 + gmibufr gmi gpm gmi_gpm 0.0 1 0 saphirbufr saphir meghat saphir_meghat 0.0 3 0 - abibufr abi g16 abi_g16 0.0 1 0 ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 + abibufr abi g16 abi_g16 0.0 1 0 + abibufr abi g17 abi_g17 0.0 1 0 rapidscatbufr uv null uv 0.0 0 0 + ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 + ompslpbufr ompslp npp ompslp_npp 0.0 0 0 + ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 + ompsnpbufr ompsnp n20 ompsnp_n20 0.0 0 0 + ompstcbufr ompstc8 n20 ompstc8_n20 0.0 2 0 + amsuabufr amsua metop-c amsua_metop-c 0.0 1 1 + mhsbufr mhs metop-c mhs_metop-c 0.0 1 1 + iasibufr iasi metop-c iasi_metop-c 0.0 1 1 + sstviirs viirs-m npp viirs-m_npp 0.0 4 0 + sstviirs viirs-m j1 viirs-m_j1 0.0 4 0 abibufr abi g18 abi_g18 0.0 1 0 ahibufr ahi himawari9 ahi_himawari9 0.0 1 0 atmsbufr atms n21 atms_n21 0.0 1 1 @@ -962,32 +753,32 @@ OBS_INPUT:: gomebufr gome metop-c gome_metop-c 0.0 2 0 :: &SUPEROB_RADAR - $SUPERRAD + $SUPERRAD / - &LAG_DATA - $LAGDATA + &LAG_DATA + / - &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=20,beta_s0=0.125,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.8,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, - nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.false.,readin_localization=.true.,ensemble_path='./ensemble_data/', - ens_fast_read=.true.,write_ens_sprd=.false., + &HYBRID_ENSEMBLE + l_hyb_ens=.true.,n_ens=$NMEM_ENKF,beta_s0=0.125,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.8, + generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=48,nlat_ens=98,nlon_ens=192, + ANISO_A_EN=.false.,jcap_ens_test=48,oz_univ_static=.false.,readin_localization=.true., + ensemble_path='./ensemble_data/',ens_fast_read=.true.,write_ens_sprd=.false., $HYBRID_ENSEMBLE / - &RAPIDREFRESH_CLDSURF + &RAPIDREFRESH_CLDSURF dfi_radar_latent_heat_time_period=30.0, + / - &CHEM - + &CHEM + + / + &NST + nst_gsi=3,nstinfo=4,zsea1=0,zsea2=0,fac_dtl=1,fac_tsl=1, / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T670_adate}, + oblat=5.,oblon=180.,obpres=850.,obdattim=2022110900, obhourset=0., - $SINGLEOB - / - &NST - nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, - $NST / " ;; @@ -1541,469 +1332,25 @@ OBS_INPUT:: amsrebufr amsre_low aqua amsre_aqua 0.0 4 1 amsrebufr amsre_mid aqua amsre_aqua 0.0 4 1 amsrebufr amsre_hig aqua amsre_aqua 0.0 4 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 4 1 - gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 5 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 5 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 5 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 5 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 5 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 5 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 5 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 5 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 5 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 5 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 5 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 5 0 - iasibufr iasi metop-a iasi_metop-a 20.0 1 1 - gomebufr gome metop-a gome_metop-a 1.0 6 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - oscatbufr uv null uv 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 1.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 1.0 6 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - / - &NST - / -" -;; - - nmm_binary) - -# Define namelist for nmm binary run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=50,niter(2)=50, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.true.,wrf_mass_regional=.false.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - radarbufr rw null l3rw 1.0 0 0 - l2rwbufr rw null l2rw 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - gpsrobufr $gps_dtype null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 1.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 1.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 1.0 0 0 - omi omi aura omi_aura 1.0 6 0 - hirs2bufr hirs2 n14 hirs2_n14 6.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 6.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 20.0 1 1 - msubufr msu n14 msu_n14 2.0 2 1 - amsuabufr amsua n15 amsua_n15 10.0 2 1 - amsuabufr amsua n16 amsua_n16 0.0 2 1 - amsuabufr amsua n17 amsua_n17 0.0 2 1 - amsuabufr amsua n18 amsua_n18 10.0 2 1 - amsuabufr amsua metop-a amsua_metop-a 10.0 2 1 - airsbufr amsua aqua amsua_aqua 5.0 2 1 - amsubbufr amsub n15 amsub_n15 3.0 3 1 - amsubbufr amsub n16 amsub_n16 3.0 3 1 - amsubbufr amsub n17 amsub_n17 3.0 3 1 - mhsbufr mhs n18 mhs_n18 3.0 3 1 - mhsbufr mhs metop-a mhs_metop-a 3.0 3 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 4 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 4 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 4 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 4 1 - gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 5 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 5 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 5 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 5 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 5 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 5 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 5 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 5 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 5 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 5 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 5 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 5 0 - iasibufr iasi metop-a iasi_metop-a 20.0 1 1 - gomebufr gome metop-a gome_metop-a 1.0 6 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - oscatbufr uv null uv 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 1.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 1.0 6 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - / - &NST - / -" -;; - - nmm_netcdf) - -# Define namelist for nmm netcdf run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=50,niter(2)=50, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.true.,wrf_mass_regional=.false.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - radarbufr rw null l3rw 1.0 0 0 - l2rwbufr rw null l2rw 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - gpsrobufr $gps_dtype null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 1.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 1.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 1.0 0 0 - omi omi aura omi_aura 1.0 6 0 - hirs2bufr hirs2 n14 hirs2_n14 6.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 6.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 6.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 20.0 1 1 - msubufr msu n14 msu_n14 2.0 2 1 - amsuabufr amsua n15 amsua_n15 10.0 2 1 - amsuabufr amsua n16 amsua_n16 0.0 2 1 - amsuabufr amsua n17 amsua_n17 0.0 2 1 - amsuabufr amsua n18 amsua_n18 10.0 2 1 - amsuabufr amsua metop-a amsua_metop-a 10.0 2 1 - airsbufr amsua aqua amsua_aqua 5.0 2 1 - amsubbufr amsub n15 amsub_n15 3.0 3 1 - amsubbufr amsub n16 amsub_n16 3.0 3 1 - amsubbufr amsub n17 amsub_n17 3.0 3 1 - mhsbufr mhs n18 mhs_n18 3.0 3 1 - mhsbufr mhs metop-a mhs_metop-a 3.0 3 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 4 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 4 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 4 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 4 1 - gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 5 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 5 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 5 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 5 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 5 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 5 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 5 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 5 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 5 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 5 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 5 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 5 0 - iasibufr iasi metop-a iasi_metop-a 20.0 1 1 - gomebufr gome metop-a gome_metop-a 1.0 6 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - oscatbufr uv null uv 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 1.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 1.0 6 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - / - &NST - / -" -;; - - netcdf_fv3_regional) - -# Define namelist for netcdf fv3 run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - newpc4pred=.true., adp_anglebc=.true., angord=4, - diag_precon=.true., step_start=1.e-3, - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - fv3_regional=.true.,grid_ratio_fv3_regional=3.0, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=0.6,bw=0.,fstat=.false., - / - &ANBKGERR - anisotropic=.false., - / - &JCOPTS - / - &STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, - vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,ext_sonde=.true., - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr gps_bnd null gps_bnd 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 0 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs281_aqua 0.0 1 0 - msubufr msu n14 msu_n14 0.0 1 0 - amsuabufr amsua n15 amsua_n15 0.0 1 0 - amsuabufr amsua n16 amsua_n16 0.0 1 0 - amsuabufr amsua n17 amsua_n17 0.0 1 0 - amsuabufr amsua n18 amsua_n18 0.0 1 0 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 0 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 - airsbufr amsua aqua amsua_aqua 0.0 1 0 - amsubbufr amsub n15 amsub_n15 0.0 1 0 - amsubbufr amsub n16 amsub_n16 0.0 1 0 - amsubbufr amsub n17 amsub_n17 0.0 1 0 - mhsbufr mhs n18 mhs_n18 0.0 1 0 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 0 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f14 ssmi_f14 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 0 - gomebufr gome metop-a gome_metop-a 0.0 1 0 - iasibufr iasi metop-b iasi_metop-b 0.0 1 0 - omibufr omi aura omi_aura 0.0 1 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 1 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 0 - amsuabufr amsua n19 amsua_n19 0.0 1 0 - mhsbufr mhs n19 mhs_n19 0.0 1 0 - tcvitl tcp null tcp 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - atmsbufr atms npp atms_npp 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - prepbufr mta_cld null mta_cld 1.0 0 0 - prepbufr gos_ctp null gos_ctp 1.0 0 0 - lgycldbufr larccld null larccld 1.0 0 0 + ssmisbufr ssmis f16 ssmis_f16 0.0 4 1 + gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 5 0 + gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 5 0 + gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 5 0 + gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 5 0 + gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 5 0 + gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 5 0 + gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 5 0 + gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 5 0 + gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 5 0 + gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 5 0 + gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 5 0 + gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 5 0 + iasibufr iasi metop-a iasi_metop-a 20.0 1 1 + gomebufr gome metop-a gome_metop-a 1.0 6 0 + mlsbufr mls30 aura mls30_aura 1.0 0 0 + oscatbufr uv null uv 1.0 0 0 + ompsnpbufr ompsnp npp ompsnp_npp 1.0 0 0 + ompstcbufr ompstc8 npp ompstc8_npp 1.0 6 0 :: &SUPEROB_RADAR del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., @@ -2012,6 +1359,19 @@ OBS_INPUT:: &LAG_DATA / &HYBRID_ENSEMBLE + l_hyb_ens=${HYBENS_REGIONAL}, + n_ens=${ENSEMBLE_SIZE_REGIONAL}, + uv_hyb_ens=${HYBENS_UV_REGIONAL}, + beta_s0=${BETA_S0_REGIONAL}, + readin_beta=.false., + s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, + s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, + generate_ens=${GENERATE_ENS_REGIONAL}, + aniso_a_en=${HYBENS_ANISO_REGIONAL}, + nlon_ens=${NLON_ENS_REGIONAL}, + nlat_ens=${NLAT_ENS_REGIONAL}, + jcap_ens=${JCAP_ENS_REGIONAL}, + jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, / &RAPIDREFRESH_CLDSURF dfi_radar_latent_heat_time_period=30.0, @@ -2019,218 +1379,257 @@ OBS_INPUT:: &CHEM / &SINGLEOB_TEST + maginnov=0.1,magoberr=0.1,oneob_type='t', + oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, + obhourset=0., / &NST / " ;; - nems_nmmb) -# Define namelist for nems nmmb run + rrfs_3denvar_glbens) + +# Define namelist for rrfs 3d hybrid envar run with global ensembles export gsi_namelist=" &SETUP - miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20, + miter=2,niter(1)=25,niter(2)=25, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, + qoption=2,print_obs_para=.true.,diag_radardbz=.false., + if_model_dbz=.false., static_gsi_nopcp_dbz=0.0, + rmesh_dbz=4.0,rmesh_vr=4.0,zmesh_dbz=1000.0,zmesh_vr=1000.0, + missing_to_nopcp=.false.,radar_no_thinning=.true., + gencode=78,factqmin=0.0,factqmax=0.0, iguess=-1, + lread_obs_save=.false.,lread_obs_skip=.false., oneobtest=.false.,retrieval=.false., nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30.,preserve_restart_date=.true., - use_gfs_ozone=.true.,check_gfs_ozone_date=.true.,regional_ozone=.true., - lrun_subdirs=.true., - $SETUP + use_pbl=.false.,use_prepb_satwnd=.false., + newpc4pred=.true.,adp_anglebc=.true.,angord=4, + passive_bc=.true.,use_edges=.false.,emiss_bc=.true., + diag_precon=.true.,step_start=1.e-3, + l4densvar=.false.,nhr_obsbin=3, + use_gfs_nemsio=.false.,use_gfs_ncio=.true.,reset_bad_radbc=.true., + netcdf_diag=.false.,binary_diag=.true., + l_obsprvdiag=.false., / &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.false.,wrf_mass_regional=.false.,nems_nmmb_regional=.true.,diagnostic_reg=.false., - nmmb_reference_grid='H',grid_ratio_nmmb=1.412, - filled_grid=.false.,half_grid=.true.,netcdf=.false., + fv3_regional=.true.,grid_ratio_fv3_regional=2.0,nvege_type=20, + fv3_io_layout_y=1, / &BKGERR - hzscl=0.373,0.746,1.50, - vs=0.6,bw=0.,fstat=.false., - / + vs=1.0, + hzscl=0.7,1.4,2.80, + bw=0.,fstat=.true., + usenewgfsberror=.true., +/ &ANBKGERR anisotropic=.false., / &JCOPTS / &STRONGOPTS - nstrong=0,nvmodes_keep=8,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, - vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., + dfact=0.75,dfact1=3.0,noiqc=.false.,c_varqc=0.02,vadfile='prepbufr', + vadwnd_l2rw_qc=.true., / &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,ext_sonde=.true., + dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,time_window_rad=1.0,ext_sonde=.true., / OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - radarbufr rw null l3rw 1.0 0 0 - l2rwbufr rw null l2rw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - gpsrobufr $gps_dtype null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 1.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 1.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 1.0 0 0 - hirs2bufr hirs2 n14 hirs2_n14 6.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 6.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 6.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 20.0 1 1 - msubufr msu n14 msu_n14 2.0 2 1 - amsuabufr amsua n15 amsua_n15 10.0 2 1 - amsuabufr amsua n16 amsua_n16 0.0 2 1 - amsuabufr amsua n17 amsua_n17 0.0 2 1 - amsuabufr amsua n18 amsua_n18 10.0 2 1 - amsuabufr amsua metop-a amsua_metop-a 10.0 2 1 - airsbufr amsua aqua amsua_aqua 5.0 2 1 - amsubbufr amsub n15 amsub_n15 3.0 3 1 - amsubbufr amsub n16 amsub_n16 3.0 3 1 - amsubbufr amsub n17 amsub_n17 3.0 3 1 - mhsbufr mhs n18 mhs_n18 3.0 3 1 - mhsbufr mhs metop-a mhs_metop-a 3.0 3 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 4 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 4 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 4 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 4 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 4 1 - gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 5 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 5 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 5 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 5 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 5 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 5 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 5 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 5 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 5 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 5 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 5 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 5 0 - iasibufr iasi metop-a iasi_metop-a 20.0 1 1 - gomebufr gome metop-a gome_metop-a 1.0 6 0 - omibufr omi aura omi_aura 1.0 6 0 - sbuvbufr sbuv2 n19 sbuv8_n19 1.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 6.0 1 1 - amsuabufr amsua n19 amsua_n19 10.0 2 1 - mhsbufr mhs n19 mhs_n19 3.0 3 1 - tcvitl tcp null tcp 1.0 0 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - oscatbufr uv null uv 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 1.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 1.0 6 0 +! dfile dtype dplat dsis dval dthin dsfcalc + dbzobs.nc dbz null dbz 1.0 0 0 + prepbufr ps null ps 1.0 0 0 + prepbufr t null t 1.0 0 0 + prepbufr q null q 1.0 0 0 + prepbufr pw null pw 1.0 0 0 + satwndbufr uv null uv 1.0 0 0 + prepbufr uv null uv 1.0 0 0 + prepbufr spd null spd 1.0 0 0 + prepbufr dw null dw 1.0 0 0 + l2rwbufr rw null l2rw 1.0 0 0 + prepbufr sst null sst 1.0 0 0 + gpsrobufr gps_ref null gps 1.0 0 0 + ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 + tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 + sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 + sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 + sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 + hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 + hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 + hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 2 0 + hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 + hirs4bufr hirs4 n19 hirs4_n19 0.0 2 0 + hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 2 0 + gimgrbufr goes_img g11 imgr_g11 0.0 1 0 + gimgrbufr goes_img g12 imgr_g12 0.0 1 0 + airsbufr airs aqua airs_aqua 0.0 2 0 + amsuabufr amsua n15 amsua_n15 0.0 2 0 + amsuabufr amsua n18 amsua_n18 0.0 2 0 + amsuabufr amsua n19 amsua_n19 0.0 2 0 + amsuabufr amsua metop-a amsua_metop-a 0.0 2 0 + amsuabufr amsua metop-b amsua_metop-b 0.0 2 0 + airsbufr amsua aqua amsua_aqua 0.0 2 0 + amsubbufr amsub n17 amsub_n17 0.0 1 0 + mhsbufr mhs n18 mhs_n18 0.0 2 0 + mhsbufr mhs n19 mhs_n19 0.0 2 0 + mhsbufr mhs metop-a mhs_metop-a 0.0 2 0 + mhsbufr mhs metop-b mhs_metop-b 0.0 2 0 + ssmitbufr ssmi f13 ssmi_f13 0.0 2 0 + ssmitbufr ssmi f14 ssmi_f14 0.0 2 0 + ssmitbufr ssmi f15 ssmi_f15 0.0 2 0 + amsrebufr amsre_low aqua amsre_aqua 0.0 2 0 + amsrebufr amsre_mid aqua amsre_aqua 0.0 2 0 + amsrebufr amsre_hig aqua amsre_aqua 0.0 2 0 + ssmisbufr ssmis f16 ssmis_f16 0.0 2 0 + ssmisbufr ssmis f17 ssmis_f17 0.0 2 0 + ssmisbufr ssmis f18 ssmis_f18 0.0 2 0 + ssmisbufr ssmis f19 ssmis_f19 0.0 2 0 + gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 + gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 + gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 + gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 + gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 + gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 + gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 + gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 + gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 + gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 + gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 + gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 + gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 2 0 + gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 2 0 + gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 2 0 + gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 2 0 + iasibufr iasi metop-a iasi_metop-a 0.0 2 0 + gomebufr gome metop-a gome_metop-a 0.0 2 0 + atmsbufr atms npp atms_npp 0.0 2 0 + atmsbufr atms n20 atms_n20 0.0 2 0 + crisbufr cris npp cris_npp 0.0 2 0 + crisfsbufr cris-fsr npp cris-fsr_npp 0.0 2 0 + crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 2 0 + abibufr abi g16 abi_g16 0.0 2 0 + mlsbufr mls30 aura mls30_aura 0.0 0 0 + oscatbufr uv null uv 0.0 0 0 + prepbufr mta_cld null mta_cld 1.0 0 0 + prepbufr gos_ctp null gos_ctp 1.0 0 0 + refInGSI rad_ref null rad_ref 1.0 0 0 + lghtInGSI lghtn null lghtn 1.0 0 0 + larcInGSI larccld null larccld 1.0 0 0 :: &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., + del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., l2superob_only=.false., / &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - full_ensemble=.true.,pwgtflg=.true., + l_hyb_ens=${ifhyb}, + uv_hyb_ens=.true., + q_hyb_ens=.false., + aniso_a_en=.false.,generate_ens=.false., + n_ens=${nummem}, + beta_s0=0.0,s_ens_h=110,s_ens_v=3, + regional_ensemble_option=1, + pseudo_hybens = .false., + grid_ratio_ens = 3, + l_ens_in_diff_time=.true., + ensemble_path='', + i_en_perts_io=1, + jcap_ens=574, + fv3sar_bg_opt=0, + readin_localization=.true., + ens_fast_read=.false., / &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, + dfi_radar_latent_heat_time_period=20.0, + metar_impact_radius=10.0, + metar_impact_radius_lowCloud=4.0, + l_gsd_terrain_match_surfTobs=.true., + l_sfcobserror_ramp_t=.true., + l_sfcobserror_ramp_q=.true., + l_PBL_pseudo_SurfobsT=.false., + l_PBL_pseudo_SurfobsQ=.false., + l_PBL_pseudo_SurfobsUV=.false., + pblH_ration=0.4, + pps_press_incr=40.0, + l_gsd_limit_ocean_q=.true., + l_pw_hgt_adjust=.true., + l_limit_pw_innov=.true., + max_innov_pct=0.1, + l_cleanSnow_WarmTs=.true., + r_cleanSnow_WarmTs_threshold=5.0, + l_conserve_thetaV=.true., + i_conserve_thetaV_iternum=3, + l_gsd_soilTQ_nudge=.false., + l_cld_bld=.true., + l_numconc=.true., + l_closeobs=.true., + cld_bld_hgt=1200.0, + build_cloud_frac_p=0.50, + clear_cloud_frac_p=0.10, + iclean_hydro_withRef_allcol=1, + i_use_2mQ4B=2, + i_use_2mT4B=1, + i_gsdcldanal_type=0, + i_gsdsfc_uselist=1, + i_lightpcp=1, + i_sfct_gross=1, + i_coastline=3, + i_gsdqc=2, / &CHEM / + &NST + / &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, + maginnov=1.0,magoberr=0.8,oneob_type='t', + oblat=38.,oblon=279.,obpres=500.,obdattim=2020040500, obhourset=0., / - &NST - / " ;; + netcdf_fv3_regional) - nems_nmmb_4denvar) - -# Define namelist for 4DEnVar nems nmmb run +# Define namelist for netcdf fv3 run export gsi_namelist=" &SETUP miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0, - iguess=-1,use_gfs_ozone=.true., - oneobtest=.false.,retrieval=.false., - nhr_assimilation=6,l_foto=.false., - use_pbl=.false.,gpstop=30., - print_diag_pcg=.true., + qoption=2, + factqmin=0.0,factqmax=0.0,deltim=$DELTIM, + iguess=-1, newpc4pred=.true., adp_anglebc=.true., angord=4, - passive_bc=.false., use_edges=.false., emiss_bc=.true., diag_precon=.true., step_start=1.e-3, - l4densvar=.true.,nhr_obsbin=3,ens_nstarthr=3, + nhr_assimilation=3,l_foto=.false., + use_pbl=.false.,use_compress=.false.,gpstop=30., + lrun_subdirs=.true., $SETUP / &GRIDOPTS - wrf_nmm_regional=.false.,wrf_mass_regional=.false.,nems_nmmb_regional=.true.,diagnostic_reg=.false., - nmmb_reference_grid='H',grid_ratio_nmmb=3.0, - filled_grid=.false.,half_grid=.false.,netcdf=.false., - $GRIDOPTS + fv3_regional=.true.,grid_ratio_fv3_regional=3.0, / &BKGERR hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - $BKGERR + vs=0.6,bw=0.,fstat=.false., / &ANBKGERR anisotropic=.false., - $ANBKGERR / &JCOPTS - $JCOPTS / &STRONGOPTS - nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - $STRONGOPTS / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., - $OBSQC / &OBS_INPUT - dmesh(1)=120.0,time_window_max=3.0,ext_sonde=.true., - $OBS_INPUT + dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,ext_sonde=.true., / OBS_INPUT:: ! dfile dtype dplat dsis dval dthin dsfcalc @@ -2241,8 +1640,7 @@ OBS_INPUT:: prepbufr uv null uv 0.0 0 0 prepbufr spd null spd 0.0 0 0 prepbufr dw null dw 0.0 0 0 - radarbufr rw null l3rw 0.0 0 0 - l2rwbufr rw null l2rw 0.0 0 0 + radarbufr rw null rw 0.0 0 0 prepbufr sst null sst 0.0 0 0 gpsrobufr gps_bnd null gps_bnd 0.0 0 0 ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 @@ -2255,43 +1653,36 @@ OBS_INPUT:: hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 0 + hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 gsndrbufr sndr g11 sndr_g11 0.0 1 0 gsndrbufr sndr g12 sndr_g12 0.0 1 0 gimgrbufr goes_img g11 imgr_g11 0.0 1 0 gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 0 + airsbufr airs aqua airs281_aqua 0.0 1 0 msubufr msu n14 msu_n14 0.0 1 0 amsuabufr amsua n15 amsua_n15 0.0 1 0 amsuabufr amsua n16 amsua_n16 0.0 1 0 amsuabufr amsua n17 amsua_n17 0.0 1 0 amsuabufr amsua n18 amsua_n18 0.0 1 0 amsuabufr amsua metop-a amsua_metop-a 0.0 1 0 + amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 airsbufr amsua aqua amsua_aqua 0.0 1 0 amsubbufr amsub n15 amsub_n15 0.0 1 0 amsubbufr amsub n16 amsub_n16 0.0 1 0 amsubbufr amsub n17 amsub_n17 0.0 1 0 mhsbufr mhs n18 mhs_n18 0.0 1 0 mhsbufr mhs metop-a mhs_metop-a 0.0 1 0 + mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 + ssmitbufr ssmi f14 ssmi_f14 0.0 1 0 ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 iasibufr iasi metop-a iasi_metop-a 0.0 1 0 gomebufr gome metop-a gome_metop-a 0.0 1 0 + iasibufr iasi metop-b iasi_metop-b 0.0 1 0 omibufr omi aura omi_aura 0.0 1 0 sbuvbufr sbuv2 n19 sbuv8_n19 0.0 1 0 hirs4bufr hirs4 n19 hirs4_n19 0.0 1 0 @@ -2299,50 +1690,35 @@ OBS_INPUT:: mhsbufr mhs n19 mhs_n19 0.0 1 0 tcvitl tcp null tcp 0.0 0 0 satwndbufr uv null uv 0.0 0 0 + atmsbufr atms npp atms_npp 0.0 1 0 + crisbufr cris npp cris_npp 0.0 1 0 + crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 + seviribufr seviri m08 seviri_m08 0.0 1 0 + seviribufr seviri m09 seviri_m09 0.0 1 0 + seviribufr seviri m10 seviri_m10 0.0 1 0 + seviribufr seviri m11 seviri_m11 0.0 1 0 gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 1 0 + prepbufr mta_cld null mta_cld 1.0 0 0 + prepbufr gos_ctp null gos_ctp 1.0 0 0 + lgycldbufr larccld null larccld 1.0 0 0 :: &SUPEROB_RADAR del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., l2superob_only=.false., - $SUPEROB_RADAR / &LAG_DATA - $LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true., - readin_beta=.true., - n_ens=10, - uv_hyb_ens=.true., - beta_s0=0.25, - s_ens_h=800, - s_ens_v=5, - generate_ens=.false., - regional_ensemble_option=1, - aniso_a_en=.false., - nlon_ens=0, - nlat_ens=0, - jcap_ens=0, - jcap_ens_test=0, - full_ensemble=.true.,pwgtflg=.true., - $HYBRID_ENSEMBLE / &RAPIDREFRESH_CLDSURF - $RAPIDREFRESH_CLDSURF + dfi_radar_latent_heat_time_period=30.0, / &CHEM - $CHEM / &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=2015031300, - obhourset=0., - $SINGLEOB_TEST / &NST / @@ -2578,7 +1954,7 @@ OBS_INPUT:: &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=80,uv_hyb_ens=.true.,beta_s0=0.2, + l_hyb_ens=.true.,n_ens=10,uv_hyb_ens=.true.,beta_s0=0.2, readin_beta=.true., s_ens_h=300,s_ens_v=-0.5,readin_localization=.false., generate_ens=.false.,regional_ensemble_option=1,grid_ratio_ens=1, @@ -2747,7 +2123,7 @@ OBS_INPUT:: &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=80,uv_hyb_ens=.true.,beta_s0=0.2, + l_hyb_ens=.true.,n_ens=10,uv_hyb_ens=.true.,beta_s0=0.2, readin_beta=.true., s_ens_h=150,s_ens_v=-0.5,readin_localization=.false., generate_ens=.false.,regional_ensemble_option=1,grid_ratio_ens=1, @@ -2770,94 +2146,119 @@ OBS_INPUT:: " ;; - global_enkf_T62) + global_enkf) # Define namelist for global enkf run export gsi_namelist=" &nam_enkf - datestring=${adate},datapath='${DATA}/', - analpertwtnh=0.85,analpertwtsh=0.85,analpertwttr=0.85, + datestring=${global_adate},datapath='${DATA}/', + analpertwtnh=${analpertwt},analpertwtsh=${analpertwt},analpertwttr=${analpertwt}, covinflatemax=1.e2,covinflatemin=1,pseudo_rh=.true.,iassim_order=0, - corrlengthnh=2000,corrlengthsh=2000,corrlengthtr=2000, - lnsigcutoffnh=2.0,lnsigcutoffsh=2.0,lnsigcutofftr=2.0, - lnsigcutoffpsnh=2.0,lnsigcutoffpssh=2.0,lnsigcutoffpstr=2.0, - lnsigcutoffsatnh=2.0,lnsigcutoffsatsh=2.0,lnsigcutoffsattr=2.0, + corrlengthnh=${corrlength},corrlengthsh=${corrlength},corrlengthtr=${corrlength}, + lnsigcutoffnh=${lnsigcutoff},lnsigcutoffsh=${lnsigcutoff},lnsigcutofftr=${lnsigcutoff}, + lnsigcutoffpsnh=${lnsigcutoff},lnsigcutoffpssh=${lnsigcutoff},lnsigcutoffpstr=${lnsigcutoff}, + lnsigcutoffsatnh=${lnsigcutoff},lnsigcutoffsatsh=${lnsigcutoff},lnsigcutoffsattr=${lnsigcutoff}, obtimelnh=1.e30,obtimelsh=1.e30,obtimeltr=1.e30, - saterrfact=1.0,numiter=1, + saterrfact=1.0,numiter=0, sprd_tol=1.e30,paoverpb_thresh=0.98, nlons=$LONA,nlats=$LATA,nlevs=$LEVS,nanals=$NMEM_ENKF, - deterministic=.true.,sortinc=.true.,lupd_satbiasc=$lupd_satbiasc, + deterministic=.true.,sortinc=.true.,lupd_satbiasc=.false., reducedgrid=.true.,readin_localization=.true., + use_gfs_nemsio=${use_gfs_nemsio},use_gfs_ncio=${use_gfs_ncio},imp_physics=$imp_physics,lupp=$lupp, + univaroz=.false.,adp_anglebc=.true.,angord=4,use_edges=.false.,emiss_bc=.true., + letkf_flag=${letkf_flag},nobsl_max=${nobsl_max},denkf=${denkf},getkf=${getkf}., + nhr_anal=${IAUFHRS_ENKF},nhr_state=${IAUFHRS_ENKF},use_qsatensmean=.true., + lobsdiag_forenkf=$lobsdiag_forenkf, + write_spread_diag=$write_spread_diag, + modelspace_vloc=$modelspace_vloc, + use_correlated_oberrs=${use_correlated_oberrs}, + netcdf_diag=$netcdf_diag,cnvw_option=$cnvw_option, + paranc=$paranc,write_fv3_incr=$write_fv3_incr, + $WRITE_INCR_ZERO $NAM_ENKF / &satobs_enkf - sattypes_rad(1) = 'amsua_n15', dsis(1) = 'amsua_n15', - sattypes_rad(2) = 'amsua_n18', dsis(2) = 'amsua_n18', - sattypes_rad(3) = 'amsua_n19', dsis(3) = 'amsua_n19', - sattypes_rad(4) = 'amsub_n16', dsis(4) = 'amsub_n16', - sattypes_rad(5) = 'amsub_n17', dsis(5) = 'amsub_n17', - sattypes_rad(6) = 'amsua_aqua', dsis(6) = 'amsua_aqua', - sattypes_rad(7) = 'amsua_metop-a', dsis(7) = 'amsua_metop-a', - sattypes_rad(8) = 'airs_aqua', dsis(8) = 'airs_aqua', - sattypes_rad(9) = 'hirs3_n17', dsis(9) = 'hirs3_n17', - sattypes_rad(10)= 'hirs4_n19', dsis(10)= 'hirs4_n19', - sattypes_rad(11)= 'hirs4_metop-a', dsis(11)= 'hirs4_metop-a', - sattypes_rad(12)= 'mhs_n18', dsis(12)= 'mhs_n18', - sattypes_rad(13)= 'mhs_n19', dsis(13)= 'mhs_n19', - sattypes_rad(14)= 'mhs_metop-a', dsis(14)= 'mhs_metop-a', - sattypes_rad(15)= 'goes_img_g11', dsis(15)= 'imgr_g11', - sattypes_rad(16)= 'goes_img_g12', dsis(16)= 'imgr_g12', - sattypes_rad(17)= 'goes_img_g13', dsis(17)= 'imgr_g13', - sattypes_rad(18)= 'goes_img_g14', dsis(18)= 'imgr_g14', - sattypes_rad(19)= 'goes_img_g15', dsis(19)= 'imgr_g15', - sattypes_rad(20)= 'avhrr3_n18', dsis(20)= 'avhrr3_n18', - sattypes_rad(21)= 'avhrr3_metop-a',dsis(21)= 'avhrr3_metop-a', - sattypes_rad(22)= 'avhrr3_n19', dsis(22)= 'avhrr3_n19', - sattypes_rad(23)= 'amsre_aqua', dsis(23)= 'amsre_aqua', - sattypes_rad(24)= 'ssmis_f16', dsis(24)= 'ssmis_f16', - sattypes_rad(25)= 'ssmis_f17', dsis(25)= 'ssmis_f17', - sattypes_rad(26)= 'ssmis_f18', dsis(26)= 'ssmis_f18', - sattypes_rad(27)= 'ssmis_f19', dsis(27)= 'ssmis_f19', - sattypes_rad(28)= 'ssmis_f20', dsis(28)= 'ssmis_f20', - sattypes_rad(29)= 'sndrd1_g11', dsis(29)= 'sndrD1_g11', - sattypes_rad(30)= 'sndrd2_g11', dsis(30)= 'sndrD2_g11', - sattypes_rad(31)= 'sndrd3_g11', dsis(31)= 'sndrD3_g11', - sattypes_rad(32)= 'sndrd4_g11', dsis(32)= 'sndrD4_g11', - sattypes_rad(33)= 'sndrd1_g12', dsis(33)= 'sndrD1_g12', - sattypes_rad(34)= 'sndrd2_g12', dsis(34)= 'sndrD2_g12', - sattypes_rad(35)= 'sndrd3_g12', dsis(35)= 'sndrD3_g12', - sattypes_rad(36)= 'sndrd4_g12', dsis(36)= 'sndrD4_g12', - sattypes_rad(37)= 'sndrd1_g13', dsis(37)= 'sndrD1_g13', - sattypes_rad(38)= 'sndrd2_g13', dsis(38)= 'sndrD2_g13', - sattypes_rad(39)= 'sndrd3_g13', dsis(39)= 'sndrD3_g13', - sattypes_rad(40)= 'sndrd4_g13', dsis(40)= 'sndrD4_g13', - sattypes_rad(41)= 'sndrd1_g14', dsis(41)= 'sndrD1_g14', - sattypes_rad(42)= 'sndrd2_g14', dsis(42)= 'sndrD2_g14', - sattypes_rad(43)= 'sndrd3_g14', dsis(43)= 'sndrD3_g14', - sattypes_rad(44)= 'sndrd4_g14', dsis(44)= 'sndrD4_g14', - sattypes_rad(45)= 'sndrd1_g15', dsis(45)= 'sndrD1_g15', - sattypes_rad(46)= 'sndrd2_g15', dsis(46)= 'sndrD2_g15', - sattypes_rad(47)= 'sndrd3_g15', dsis(47)= 'sndrD3_g15', - sattypes_rad(48)= 'sndrd4_g15', dsis(48)= 'sndrD4_g15', - sattypes_rad(49)= 'iasi_metop-a', dsis(49)= 'iasi_metop-a', - sattypes_rad(50)= 'seviri_m08', dsis(50)= 'seviri_m08', - sattypes_rad(51)= 'seviri_m09', dsis(51)= 'seviri_m09', - sattypes_rad(52)= 'seviri_m10', dsis(52)= 'seviri_m10', - sattypes_rad(53)= 'amsua_metop-b', dsis(53)= 'amsua_metop-b', - sattypes_rad(54)= 'hirs4_metop-b', dsis(54)= 'hirs4_metop-b', - sattypes_rad(55)= 'mhs_metop-b', dsis(55)= 'mhs_metop-b', - sattypes_rad(56)= 'iasi_metop-b', dsis(56)= 'iasi_metop-b', - sattypes_rad(57)= 'avhrr3_metop-b',dsis(57)= 'avhrr3_metop-b', - sattypes_rad(58)= 'atms_npp', dsis(58)= 'atms_npp', - sattypes_rad(59)= 'atms_n20', dsis(59)= 'atms_n20', - sattypes_rad(60)= 'cris_npp', dsis(60)= 'cris_npp', - sattypes_rad(61)= 'cris-fsr_npp', dsis(61)= 'cris-fsr_npp', - sattypes_rad(62)= 'cris-fsr_n20', dsis(62)= 'cris-fsr_n20', - sattypes_rad(63)= 'seviri_m11', dsis(63)= 'seviri_m11', - sattypes_rad(64)= 'abi_g16', dsis(64)= 'abi_g16', - sattypes_rad(65)= 'ahi_himawari8', dsis(65)= 'ahi_himawari8', + sattypes_rad(1) = 'amsua_n15', dsis(1) = 'amsua_n15', + sattypes_rad(2) = 'amsua_n18', dsis(2) = 'amsua_n18', + sattypes_rad(3) = 'amsua_n19', dsis(3) = 'amsua_n19', + sattypes_rad(4) = 'amsub_n16', dsis(4) = 'amsub_n16', + sattypes_rad(5) = 'amsub_n17', dsis(5) = 'amsub_n17', + sattypes_rad(6) = 'amsua_aqua', dsis(6) = 'amsua_aqua', + sattypes_rad(7) = 'amsua_metop-a', dsis(7) = 'amsua_metop-a', + sattypes_rad(8) = 'airs_aqua', dsis(8) = 'airs_aqua', + sattypes_rad(9) = 'hirs3_n17', dsis(9) = 'hirs3_n17', + sattypes_rad(10)= 'hirs4_n19', dsis(10)= 'hirs4_n19', + sattypes_rad(11)= 'hirs4_metop-a', dsis(11)= 'hirs4_metop-a', + sattypes_rad(12)= 'mhs_n18', dsis(12)= 'mhs_n18', + sattypes_rad(13)= 'mhs_n19', dsis(13)= 'mhs_n19', + sattypes_rad(14)= 'mhs_metop-a', dsis(14)= 'mhs_metop-a', + sattypes_rad(15)= 'goes_img_g11', dsis(15)= 'imgr_g11', + sattypes_rad(16)= 'goes_img_g12', dsis(16)= 'imgr_g12', + sattypes_rad(17)= 'goes_img_g13', dsis(17)= 'imgr_g13', + sattypes_rad(18)= 'goes_img_g14', dsis(18)= 'imgr_g14', + sattypes_rad(19)= 'goes_img_g15', dsis(19)= 'imgr_g15', + sattypes_rad(20)= 'avhrr_n18', dsis(20)= 'avhrr3_n18', + sattypes_rad(21)= 'avhrr_metop-a', dsis(21)= 'avhrr3_metop-a', + sattypes_rad(22)= 'avhrr_n19', dsis(22)= 'avhrr3_n19', + sattypes_rad(23)= 'amsre_aqua', dsis(23)= 'amsre_aqua', + sattypes_rad(24)= 'ssmis_f16', dsis(24)= 'ssmis_f16', + sattypes_rad(25)= 'ssmis_f17', dsis(25)= 'ssmis_f17', + sattypes_rad(26)= 'ssmis_f18', dsis(26)= 'ssmis_f18', + sattypes_rad(27)= 'ssmis_f19', dsis(27)= 'ssmis_f19', + sattypes_rad(28)= 'ssmis_f20', dsis(28)= 'ssmis_f20', + sattypes_rad(29)= 'sndrd1_g11', dsis(29)= 'sndrD1_g11', + sattypes_rad(30)= 'sndrd2_g11', dsis(30)= 'sndrD2_g11', + sattypes_rad(31)= 'sndrd3_g11', dsis(31)= 'sndrD3_g11', + sattypes_rad(32)= 'sndrd4_g11', dsis(32)= 'sndrD4_g11', + sattypes_rad(33)= 'sndrd1_g12', dsis(33)= 'sndrD1_g12', + sattypes_rad(34)= 'sndrd2_g12', dsis(34)= 'sndrD2_g12', + sattypes_rad(35)= 'sndrd3_g12', dsis(35)= 'sndrD3_g12', + sattypes_rad(36)= 'sndrd4_g12', dsis(36)= 'sndrD4_g12', + sattypes_rad(37)= 'sndrd1_g13', dsis(37)= 'sndrD1_g13', + sattypes_rad(38)= 'sndrd2_g13', dsis(38)= 'sndrD2_g13', + sattypes_rad(39)= 'sndrd3_g13', dsis(39)= 'sndrD3_g13', + sattypes_rad(40)= 'sndrd4_g13', dsis(40)= 'sndrD4_g13', + sattypes_rad(41)= 'sndrd1_g14', dsis(41)= 'sndrD1_g14', + sattypes_rad(42)= 'sndrd2_g14', dsis(42)= 'sndrD2_g14', + sattypes_rad(43)= 'sndrd3_g14', dsis(43)= 'sndrD3_g14', + sattypes_rad(44)= 'sndrd4_g14', dsis(44)= 'sndrD4_g14', + sattypes_rad(45)= 'sndrd1_g15', dsis(45)= 'sndrD1_g15', + sattypes_rad(46)= 'sndrd2_g15', dsis(46)= 'sndrD2_g15', + sattypes_rad(47)= 'sndrd3_g15', dsis(47)= 'sndrD3_g15', + sattypes_rad(48)= 'sndrd4_g15', dsis(48)= 'sndrD4_g15', + sattypes_rad(49)= 'iasi_metop-a', dsis(49)= 'iasi_metop-a', + sattypes_rad(50)= 'seviri_m08', dsis(50)= 'seviri_m08', + sattypes_rad(51)= 'seviri_m09', dsis(51)= 'seviri_m09', + sattypes_rad(52)= 'seviri_m10', dsis(52)= 'seviri_m10', + sattypes_rad(53)= 'seviri_m11', dsis(53)= 'seviri_m11', + sattypes_rad(54)= 'amsua_metop-b', dsis(54)= 'amsua_metop-b', + sattypes_rad(55)= 'hirs4_metop-b', dsis(55)= 'hirs4_metop-b', + sattypes_rad(56)= 'mhs_metop-b', dsis(56)= 'mhs_metop-b', + sattypes_rad(57)= 'iasi_metop-b', dsis(57)= 'iasi_metop-b', + sattypes_rad(58)= 'avhrr_metop-b', dsis(58)= 'avhrr3_metop-b', + sattypes_rad(59)= 'atms_npp', dsis(59)= 'atms_npp', + sattypes_rad(60)= 'atms_n20', dsis(60)= 'atms_n20', + sattypes_rad(61)= 'cris_npp', dsis(61)= 'cris_npp', + sattypes_rad(62)= 'cris-fsr_npp', dsis(62)= 'cris-fsr_npp', + sattypes_rad(63)= 'cris-fsr_n20', dsis(63)= 'cris-fsr_n20', + sattypes_rad(64)= 'gmi_gpm', dsis(64)= 'gmi_gpm', + sattypes_rad(65)= 'saphir_meghat', dsis(65)= 'saphir_meghat', + sattypes_rad(66)= 'amsua_metop-c', dsis(66)= 'amsua_metop-c', + sattypes_rad(67)= 'mhs_metop-c', dsis(67)= 'mhs_metop-c', + sattypes_rad(68)= 'ahi_himawari8', dsis(68)= 'ahi_himawari8', + sattypes_rad(69)= 'abi_g16', dsis(69)= 'abi_g16', + sattypes_rad(70)= 'abi_g17', dsis(70)= 'abi_g17', + sattypes_rad(71)= 'iasi_metop-c', dsis(71)= 'iasi_metop-c', + sattypes_rad(72)= 'viirs-m_npp', dsis(72)= 'viirs-m_npp', + sattypes_rad(73)= 'viirs-m_j1', dsis(73)= 'viirs-m_j1', + sattypes_rad(74)= 'avhrr_metop-c', dsis(74)= 'avhrr3_metop-c', + sattypes_rad(75)= 'abi_g18', dsis(75)= 'abi_g18', + sattypes_rad(76)= 'ahi_himawari9', dsis(76)= 'ahi_himawari9', + sattypes_rad(77)= 'viirs-m_j2', dsis(77)= 'viirs-m_j2', + sattypes_rad(78)= 'atms_n21', dsis(78)= 'atms_n21', + sattypes_rad(79)= 'cris-fsr_n21', dsis(79)= 'cris-fsr_n21', $SATOBS_ENKF / &ozobs_enkf @@ -2871,236 +2272,16 @@ export gsi_namelist=" sattypes_oz(8) = 'mls30_aura', sattypes_oz(9) = 'ompsnp_npp', sattypes_oz(10) = 'ompstc8_npp', + sattypes_oz(11) = 'ompstc8_n20', + sattypes_oz(12) = 'ompsnp_n20', + sattypes_oz(13) = 'ompslp_npp', + sattypes_oz(14) = 'ompstc8_n21', + sattypes_oz(15) = 'ompsnp_n21', + sattypes_oz(16) = 'gome_metop-c', $OZOBS_ENKF /" ;; - global_C96_fv3aero) - -# Define namelist for global run (aerosol analysis) - -export gsi_namelist=" - &SETUP - miter=3, - niter(1)=100,niter(2)=100,niter(3)=1, - niter_no_qc(1)=50,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=0,deltim=400, - factqmin=0.0,factqmax=0.0, - iguess=-1, - tzr_qc=1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., - use_gfs_nemsio=.true.,sfcnst_comb=.true., - use_readin_anl_sfcmask=.false., - lrun_subdirs=.true., - crtm_coeffs_path='./crtm_coeffs/', - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,nhr_obsbin=3, - cwoption=3,imp_physics=11,lupp=.true., - netcdf_diag=.true.,binary_diag=.true., - lobsdiag_forenkf=.false., - diag_aero=.true., use_fv3_aero=.true.,offtime_data=.true., - diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false., - / - - &GRIDOPTS - JCAP_B=190,JCAP=190,NLAT=194,NLON=384,nsig=64, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - / - - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - / - - &ANBKGERR - anisotropic=.false., - / - - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, - / - - &STRONGOPTS - tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - / - - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.true., - aircraft_t_bc=.false.,biaspredt=1000.0,upd_aircraft=.true.,cleanup_tail=.true., - / - - &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,time_window_max=3.0, - / - -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - modisaodbufr modis_aod aqua v.modis_aqua 1.0 1 0 - modisaodbufr modis_aod terra v.modis_terra 1.0 1 0 -:: - - &SUPEROB_RADAR - / - - &LAG_DATA - / - - &HYBRID_ENSEMBLE - l_hyb_ens=.false., - generate_ens=.false., - beta_s0=0.125,readin_beta=.false., - s_ens_h=800.,s_ens_v=-0.8,readin_localization=.true., - aniso_a_en=.false.,oz_univ_static=.false.,uv_hyb_ens=.true., - ensemble_path='./ensemble_data/', - ens_fast_read=.true., - / - - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - - &CHEM - laeroana_gocart=.true.,aod_qa_limit=1,luse_deepblue=.true., - / - - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=2019061718, - obhourset=0., - / - - &NST - nst_gsi=3, - nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, - /" -;; - - global_C96_fv3aerorad) - -# Define namelist for global run (aerosol analysis) - -export gsi_namelist=" - &SETUP - niter(1)=100,niter(2)=100 - niter_no_qc(1)=50,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=82,factqmin=0.5,factqmax=0.005,deltim=1200, - iguess=-1, - tzr_qc=1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., - use_gfs_nemsio=.true.,sfcnst_comb=.true., - use_readin_anl_sfcmask=.false., - lrun_subdirs=.true., - crtm_coeffs_path='./crtm_coeffs/', - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,nhr_obsbin=3, - cwoption=3,imp_physics=11,lupp=.true., - netcdf_diag=.true.,binary_diag=.false., - lobsdiag_forenkf=.false., - diag_aero=.false., use_fv3_aero=.true.,offtime_data=.true., - diag_rad=.true.,diag_pcp=.false.,diag_conv=.true.,diag_ozone=.false., - / - - &GRIDOPTS - JCAP_B=190,JCAP=190,NLAT=194,NLON=384,nsig=64, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - / - - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - / - - &ANBKGERR - anisotropic=.false., - / - - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, - / - - &STRONGOPTS - tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - / - - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.true., - aircraft_t_bc=.false.,biaspredt=1000.0,upd_aircraft=.true.,cleanup_tail=.true., - / - - &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,time_window_max=3.0, - / - -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - iasibufr iasi metop-b iasi_metop-b 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - nsstbufr sst nsst sst 0.0 0 0 -:: - - &SUPEROB_RADAR - / - - &LAG_DATA - / - - &HYBRID_ENSEMBLE - l_hyb_ens=.false., - generate_ens=.false., - beta_s0=0.125,readin_beta=.false., - s_ens_h=800.,s_ens_v=-0.8,readin_localization=.true., - aniso_a_en=.false.,oz_univ_static=.false.,uv_hyb_ens=.true., - ensemble_path='./ensemble_data/', - ens_fast_read=.true., - / - - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - - &CHEM - lread_ext_aerosol=.true., - / - - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=2019061718, - obhourset=0., - / - - &NST - nst_gsi=3, - nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, - /" -;; - *) # EXIT out for unresolved regression test diff --git a/regression/regression_namelists_db.sh b/regression/regression_namelists_db.sh index 9eed1bbd5..59962a587 100755 --- a/regression/regression_namelists_db.sh +++ b/regression/regression_namelists_db.sh @@ -2,7 +2,7 @@ job_name=$1 case $job_name in -global_T62) +global_3dvar) # Define namelist for global run (pcgsoi minimization) @@ -168,373 +168,47 @@ OBS_INPUT:: " ;; -global_lanczos_T62) - -# Define namelist for global run (lanczos minimization) - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=10,niter(2)=5, - niter_no_qc(1)=500,niter_no_qc(2)=500, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=82,qoption=2, - factqmin=0.005,factqmax=0.005,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=10,gpstop=30., - lsqrtb=.true.,lcongrad=.true.,ltlint=.true.,ladtest=.true.,lgrtest=.false., - use_gfs_nemsio=.false.,lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcpdry=.false.,bamp_jcpdry=2.5e7, - $JCOPTS - / - &STRONGOPTS - tlnmc_option=1,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=5000.0,dmesh(4)=10000.0,dmesh(5)=1450.0,time_window_max=0.5, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr_skip hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr_skip hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr_skip hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 3 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr_skip amsua n16 amsua_n16 0.0 1 1 - amsuabufr_skip amsua n17 amsua_n17 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr_skip amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr_skip amsub n15 amsub_n15 0.0 1 1 - amsubbufr_skip amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr_skip mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 4 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 5 0 - seviribufr seviri m09 seviri_m09 0.0 5 0 - seviribufr seviri m10 seviri_m10 0.0 5 0 - seviribufr seviri m11 seviri_m11 0.0 5 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_GLOBAL}, - n_ens=${ENSEMBLE_SIZE_GLOBAL}, - uv_hyb_ens=${HYBENS_UV_GLOBAL}, - beta_s0=${BETA_S0_GLOBAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_GLOBAL}, - s_ens_v=${HYBENS_VER_SCALE_GLOBAL}, - generate_ens=${GENERATE_ENS_GLOBAL}, - aniso_a_en=${HYBENS_ANISO_GLOBAL}, - nlon_ens=${LONA}, - nlat_ens=${NLAT}, - jcap_ens=${JCAP}, - jcap_ens_test=${JCAP}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${adate}, - obhourset=0., - $SINGLEOB - - - &NST - / -" -;; - -global_hybrid_T126) + global_4denvar ) # Define namelist for global hybrid run export gsi_namelist=" &SETUP - miter=1,niter(1)=5,niter(2)=150, - niter_no_qc(1)=50,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2,cwoption=3, - gencode=82,factqmin=0.1,factqmax=0.1,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_prepb_satwnd=.false., - nhr_assimilation=6,lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7, - $JCOPTS - / - &STRONGOPTS - tlnmc_option=1,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true.,aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=1450.0,dmesh(2)=1500.0,time_window_max=0.5, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr_profl t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr_profl q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr_profl uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr_skip hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr_skip amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr_skip mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis_las f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_uas f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_img f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis_env f16 ssmis_f16 0.0 1 0 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 - iasibufr iasi metop-b iasi_metop-b 0.0 1 0 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 - atmsbufr atms n20 atms_n20 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 - gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 - gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 - gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 - gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - $LAGDATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=20,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, - nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.true.,readin_localization=.true., - write_ens_sprd=.false., - $HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_hybrid_T126_adate}, - obhourset=0., - $SINGLEOB - - &NST - / -" -;; - - global_4denvar_T126 ) - -# Define namelist for global 4denvar run - -export gsi_namelist=" - - &SETUP - miter=1,niter(1)=2,niter(2)=1, + miter=1,niter(1)=2,niter(2)=5, niter_no_qc(1)=1,niter_no_qc(2)=0, - use_gfs_nemsio=.true., - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,lwrite4danl=.true., - tzr_qc=1, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2,cwoption=3, - gencode=82,factqmin=0.1,factqmax=0.1,deltim=$DELTIM, + qoption=2, + gencode=82,factqmin=0.5,factqmax=0.0002,deltim=400, iguess=-1, oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_prepb_satwnd=.false., - nhr_assimilation=6,lrun_subdirs=.true., + use_pbl=.false.,use_compress=.true.,nsig_ext=55,gpstop=55., + use_gfs_nemsio=.false.,use_gfs_ncio=.true.,lrun_subdirs=.true.,use_readin_anl_sfcmask=.true., + crtm_coeffs_path='./crtm_coeffs/', + newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., + diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, + verbose=.false.,imp_physics=11,lupp=.true.,binary_diag=.false.,netcdf_diag=.true., + lobsdiag_forenkf=.false., + nhr_anal=3,6,9, + l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,nhr_assimilation=6,lwrite4danl=.true., tzr_qc=1,sfcnst_comb=.true., + write_fv3_incr=.true.,incvars_to_zero= 'liq_wat_inc','icmr_inc',incvars_zero_strat='sphum_inc','liq_wat_inc','icmr_inc', + incvars_efold=5, + use_gfs_ncio=.true., $SETUP / &GRIDOPTS JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, + regional=.false., $GRIDOPTS / &BKGERR + vs=0.7, hzscl=1.7,0.8,0.5, hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, bkgv_write=.false., + cwcoveqqcov=.false., $BKGVERR / &ANBKGERR @@ -542,17 +216,19 @@ export gsi_namelist=" $ANBKGERR / &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7,ljc4tlevs=.true., + ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7,ljc4tlevs=.true., $JCOPTS / &STRONGOPTS - tlnmc_option=3,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., + tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, + baldiag_full=.false.,baldiag_inc=.false., $STRONGOPTS / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true.,aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true., + dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, + use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.false., + aircraft_t_bc=.true.,biaspredt=1.0e5,upd_aircraft=.true.,cleanup_tail=.true. + nvqc=.true., $OBSQC / &OBS_INPUT @@ -577,19 +253,19 @@ OBS_INPUT:: gpsrobufr gps_bnd null gps 0.0 0 0 ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 + sbuvbufr_ sbuv2 n16 sbuv8_n16 0.0 0 0 + sbuvbufr_ sbuv2 n17 sbuv8_n17 0.0 0 0 + sbuvbufr_ sbuv2 n18 sbuv8_n18 0.0 0 0 + hirs3bufr_ hirs3 n17 hirs3_n17 0.0 1 0 hirs4bufr_skip hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 + gimgrbufr_ goes_img g11 imgr_g11 0.0 1 0 + gimgrbufr_ goes_img g12 imgr_g12 0.0 1 0 + airsbufr_ airs aqua airs_aqua 0.0 1 1 amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 amsuabufr_skip amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 + airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 + amsubbufr_ amsub n17 amsub_n17 0.0 1 1 mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 mhsbufr_skip mhs metop-a mhs_metop-a 0.0 1 1 ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 @@ -599,14 +275,13 @@ OBS_INPUT:: ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - ssmisbufr ssmis f19 ssmis_f19 0.0 1 0 gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 + gsnd1bufr_skip sndrd3 g11 sndrD3_g11 0.0 1 0 gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 @@ -629,9 +304,11 @@ OBS_INPUT:: mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 iasibufr iasi metop-b iasi_metop-b 0.0 1 1 gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 + atmsbufr atms npp atms_npp 0.0 1 1 + atmsbufr atms n20 atms_n20 0.0 1 1 crisbufr cris npp cris_npp 0.0 1 0 crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 + crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 @@ -644,13 +321,21 @@ OBS_INPUT:: mlsbufr mls30 aura mls30_aura 0.0 0 0 avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 + avhambufr avhrr metop-b avhrr3_metop-b 0.0 1 0 + avhpmbufr avhrr n19 avhrr3_n19 0.0 1 0 amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 gmibufr gmi gpm gmi_gpm 0.0 3 0 saphirbufr saphir meghat saphir_meghat 0.0 3 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 3 0 + ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 + abibufr abi g16 abi_g16 0.0 1 0 + abibufr abi g17 abi_g17 0.0 1 0 rapidscatbufr uv null uv 0.0 0 0 ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 + amsuabufr amsua metop-c amsua_metop-c 0.0 1 1 + mhsbufr mhs metop-c mhs_metop-c 0.0 1 1 + iasibufr iasi metop-c iasi_metop-c 0.0 1 1 + ompslpbufr ompslp npp ompslp_npp 0.0 1 1 :: &SUPEROB_RADAR $SUPERRAD @@ -659,9 +344,9 @@ OBS_INPUT:: $LAGDATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=10,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, - nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.true.,readin_localization=.true., - write_ens_sprd=.false., + l_hyb_ens=.true.,n_ens=10,beta_s0=0.125,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.8,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=190, + nlat_ens=194,nlon_ens=384,aniso_a_en=.false.,jcap_ens_test=62,oz_univ_static=.false.,readin_localization=.true.,ensemble_path='./ensemble_data/', + ens_fast_read=.true.,write_ens_sprd=.false., $HYBRID_ENSEMBLE / &RAPIDREFRESH_CLDSURF @@ -672,1195 +357,96 @@ OBS_INPUT:: / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T126_adate}, + oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T670_adate}, obhourset=0., $SINGLEOB / &NST - nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=5, + nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, $NST / " ;; - global_fv3_4denvar_T126 ) +RTMA) -# Define namelist for global fv3 4denvar run +# Define namelist for RTMA runs export gsi_namelist=" - &SETUP - miter=1,niter(1)=2,niter(2)=1, - niter_no_qc(1)=1,niter_no_qc(2)=0, - use_gfs_nemsio=.true., - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,lwrite4danl=.true., - tzr_qc=1, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2,cwoption=3, - gencode=82,factqmin=0.1,factqmax=0.1,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_prepb_satwnd=.false., - nhr_assimilation=6,lrun_subdirs=.true.,sfcnst_comb=.true., - $SETUP - / - &GRIDOPTS - JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7,ljc4tlevs=.true., - $JCOPTS - / - &STRONGOPTS - tlnmc_option=3,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.true.,baldiag_inc=.true., - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,njqc=.false.,vqc=.true.,aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.0,time_window_max=0.5, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr_profl t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr_profl q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr_profl uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - nsstbufr sst nsst sst 0.0 0 0 - gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr_skip hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr_skip amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr_skip mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 - ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - ssmisbufr ssmis f19 ssmis_f19 0.0 1 0 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 1 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 1 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 - iasibufr iasi metop-b iasi_metop-b 0.0 1 1 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 - gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 - gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 - gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - oscatbufr uv null uv 0.0 0 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 - avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 - amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 - gmibufr gmi gpm gmi_gpm 0.0 3 0 - saphirbufr saphir meghat saphir_meghat 0.0 3 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 3 0 - rapidscatbufr uv null uv 0.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - $LAGDATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=10,beta_s0=0.25,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.7,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=62, - nlat_ens=96,nlon_ens=192,ANISO_A_EN=.false.,jcap_ens_test=62,oz_univ_static=.true.,readin_localization=.true.,ensemble_path='./ensemble_data/', - write_ens_sprd=.false., - $HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T126_adate}, - obhourset=0., - $SINGLEOB - / - &NST - nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=5, - $NST - / -" -;; - - global_fv3_4denvar_C192 ) - -# Define namelist for global hybrid run - -export gsi_namelist=" - - &SETUP - miter=1,niter(1)=2,niter(2)=5, - niter_no_qc(1)=1,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=82,factqmin=0.5,factqmax=0.0002,deltim=400, - iguess=-1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=55,gpstop=55., - use_gfs_nemsio=.false.,use_gfs_ncio=.true.,lrun_subdirs=.true.,use_readin_anl_sfcmask=.true., - crtm_coeffs_path='./crtm_coeffs/', - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, - verbose=.false.,imp_physics=11,lupp=.true.,binary_diag=.false.,netcdf_diag=.true., - lobsdiag_forenkf=.false., - nhr_anal=3,6,9, - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,nhr_assimilation=6,lwrite4danl=.true., tzr_qc=1,sfcnst_comb=.true., - write_fv3_incr=.true.,incvars_to_zero= 'liq_wat_inc','icmr_inc',incvars_zero_strat='sphum_inc','liq_wat_inc','icmr_inc', - incvars_efold=5, - use_gfs_ncio=.true., - $SETUP - / - &GRIDOPTS - JCAP_B=$JCAP_B,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - regional=.false., - $GRIDOPTS - / - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7,ljc4tlevs=.true., - $JCOPTS - / - &STRONGOPTS - tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - baldiag_full=.false.,baldiag_inc=.false., - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.false., - aircraft_t_bc=.true.,biaspredt=1.0e5,upd_aircraft=.true.,cleanup_tail=.true. - nvqc=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.0,time_window_max=0.5, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr_profl t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr_profl q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr_profl uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - nsstbufr sst nsst sst 0.0 0 0 - gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr_ sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr_ sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr_ sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr_ hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr_skip hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr_ goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr_ goes_img g12 imgr_g12 0.0 1 0 - airsbufr_ airs aqua airs_aqua 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr_skip amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr_ amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr_skip mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 - ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr_skip sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 1 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 1 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 - iasibufr iasi metop-b iasi_metop-b 0.0 1 1 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 1 - atmsbufr atms n20 atms_n20 0.0 1 1 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 - gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 - gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 - gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 - gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - oscatbufr uv null uv 0.0 0 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 - avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 - avhambufr avhrr metop-b avhrr3_metop-b 0.0 1 0 - avhpmbufr avhrr n19 avhrr3_n19 0.0 1 0 - amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 - gmibufr gmi gpm gmi_gpm 0.0 3 0 - saphirbufr saphir meghat saphir_meghat 0.0 3 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 - abibufr abi g16 abi_g16 0.0 1 0 - abibufr abi g17 abi_g17 0.0 1 0 - rapidscatbufr uv null uv 0.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 2 0 - amsuabufr amsua metop-c amsua_metop-c 0.0 1 1 - mhsbufr mhs metop-c mhs_metop-c 0.0 1 1 - iasibufr iasi metop-c iasi_metop-c 0.0 1 1 - ompslpbufr ompslp npp ompslp_npp 0.0 1 1 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - $LAGDATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=10,beta_s0=0.125,readin_beta=.false.,s_ens_h=800,s_ens_v=-0.8,generate_ens=.false.,uv_hyb_ens=.true.,jcap_ens=190, - nlat_ens=194,nlon_ens=384,aniso_a_en=.false.,jcap_ens_test=62,oz_univ_static=.false.,readin_localization=.true.,ensemble_path='./ensemble_data/', - ens_fast_read=.true.,write_ens_sprd=.false., - $HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T670_adate}, - obhourset=0., - $SINGLEOB - / - &NST - nst_gsi=3,nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, - $NST - / -" -;; - -RTMA) - -# Define namelist for RTMA runs - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=2,niter(2)=1, - write_diag(1)=.true.,write_diag(2)=.true.,write_diag(3)=.true., - gencode=78,qoption=1,tsensible=.true. - factqmin=1.0,factqmax=1.0,factv=0.0,factcldch=0.0,factw10m=1.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - diag_rad=.false.,diag_pcp=.false.,diag_ozone=.false.,diag_aero=.false., - nhr_assimilation=6,min_offset=180,use_compress=.false.,lrun_subdirs=.true., - use_similarity_2dvar=.true., - neutral_stability_windfact_2dvar=.false., - use_prepb_satwnd=.false., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.false.,wrf_mass_regional=.false.,twodvar_regional=.true., - diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=.false., - / - &BKGERR - hzscl=1.414,1.000,0.707, - vs=0.5,bw=0.0, - / - &ANBKGERR - anisotropic=.true.,an_vs=0.5,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=1.,nord_f2a=4, - rtma_subdomain_option=.true.,triad4=.true.,nsmooth=0,nsmooth_shapiro=0,lreadnorm=.true., - / - &JCOPTS - / - &STRONGOPTS - tlnmc_option=0,nstrong=1,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',hilbert_curve=.true., - buddycheck_t=.false.,buddydiag_save=.false.,oberrflg=.true.,njqc=.true.,vqc=.false., - $OBSQC - / - &OBS_INPUT - dmesh(1)=60.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,time_window_max=3.0, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - prepbufr wspd10m null wspd10m 1.0 0 0 - satwnd wspd10m null wspd10m 1.0 0 0 - prepbufr uwnd10m null uwnd10m 1.0 0 0 - satwnd uwnd10m null uwnd10m 1.0 0 0 - prepbufr vwnd10m null vwnd10m 1.0 0 0 - satwnd vwnd10m null vwnd10m 1.0 0 0 - prepbufr gust null gust 1.0 0 0 - prepbufr vis null vis 1.0 0 0 - prepbufr td2m null td2m 1.0 0 0 - mxtmdat mxtm null mxtm 1.0 0 0 - mitmdat mitm null mitm 1.0 0 0 - prepbufr mxtm null mxtm 1.0 0 0 - prepbufr mitm null mitm 1.0 0 0 - prepbufr pmsl null pmsl 1.0 0 0 - prepbufr howv null howv 1.0 0 0 - satmar howv null howv 1.0 0 0 - prepbufr tcamt null tcamt 1.0 0 0 - goessky tcamt null tcamt 1.0 0 0 - prepbufr cldch null cldch 1.0 0 0 -:: - &SUPEROB_RADAR - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - l_closeobs=.true. - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=36.,oblon=260.,obpres=1000.,obdattim=${adate}, - obhourset=0., - - &NST - / -" -;; - -arw_binary) - -# Define namelist for arw binary run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=2,niter(2)=1, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.false.,wrf_mass_regional=.true.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - tlnmc_option=0,nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=1200.0,dmesh(2)=2000.0,dmesh(3)=2500.0,dmesh(4)=1000.0,time_window_max=0.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - omi omi aura omi_aura 0.0 4 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 2 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n16 amsua_n16 0.0 1 1 - amsuabufr amsua n17 amsua_n17 0.0 1 1 - amsuabufr amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n15 amsub_n15 0.0 1 1 - amsubbufr amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 3 1 - gomebufr gome metop-a gome_metop-a 0.0 4 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 4 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - - &NST - / -" -;; - -arw_netcdf) - -# Define namelist for arw netcdf run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=2,niter(2)=1, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.false.,wrf_mass_regional=.true.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - tlnmc_option=0,nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=1200.0,dmesh(2)=3000.0,dmesh(3)=4000.0,dmesh(4)=1000.0,time_window_max=0.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - omi omi aura omi_aura 0.0 4 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr_skip hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 2 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n16 amsua_n16 0.0 1 1 - amsuabufr amsua n17 amsua_n17 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n15 amsub_n15 0.0 1 1 - amsubbufr amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr_skip sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 3 1 - gomebufr gome metop-a gome_metop-a 0.0 4 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 4 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - - &NST - / -" -;; - -nmm_binary) - -# Define namelist for nmm binary run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=1,niter(2)=2, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.true.,wrf_mass_regional=.false.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - tlnmc_option=0,nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=1200.0,dmesh(2)=5000.0,dmesh(3)=8000.0,dmesh(4)=1000.0,time_window_max=0.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - omi omi aura omi_aura 0.0 4 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr_skip hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 2 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n16 amsua_n16 0.0 1 1 - amsuabufr amsua n17 amsua_n17 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n15 amsub_n15 0.0 1 1 - amsubbufr amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr_skip sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 3 1 - gomebufr gome metop-a gome_metop-a 0.0 4 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 4 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - - &NST - / -" -;; - -nmm_netcdf) - -# Define namelist for nmm netcdf run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=1,niter(2)=2, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - oneobtest=.false.,retrieval=.false., - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.true.,wrf_mass_regional=.false.,diagnostic_reg=.false., - filled_grid=.false.,half_grid=.true.,netcdf=$NETCDF, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - / - &ANBKGERR - anisotropic=.false.,an_vs=1.0,ngauss=1, - an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., - ifilt_ord=2,npass=3,normal=-200,grid_ratio=4.,nord_f2a=4, - / - &JCOPTS - / - &STRONGOPTS - tlnmc_option=0,nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=1200.0,dmesh(2)=2000.0,dmesh(3)=2500.0,dmesh(4)=1000.0,time_window_max=0.5, - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - omi omi aura omi_aura 0.0 4 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 2 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n16 amsua_n16 0.0 1 1 - amsuabufr amsua n17 amsua_n17 0.0 1 1 - amsuabufr amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n15 amsub_n15 0.0 1 1 - amsubbufr amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr_skip sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 3 1 - gomebufr gome metop-a gome_metop-a 0.0 4 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 4 0 -:: - &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., - / - &LAG_DATA - / - &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - &CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, - obhourset=0., - - &NST - / -" -;; - - netcdf_fv3_regional) - -# Define namelist for netcdf fv3 run - -export gsi_namelist=" - - &SETUP - miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, - iguess=-1, - newpc4pred=.true., adp_anglebc=.true., angord=4, - diag_precon=.true., step_start=1.e-3, - nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,gpstop=30., - lrun_subdirs=.true., - $SETUP - / - &GRIDOPTS - fv3_regional=.true.,grid_ratio_fv3_regional=3.0, - / - &BKGERR - hzscl=0.373,0.746,1.50, - vs=0.6,bw=0.,fstat=.false., - / - &ANBKGERR - anisotropic=.false., - / - &JCOPTS - / - &STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, - vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., - / - &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,ext_sonde=.true., - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr gps_bnd null gps_bnd 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 0 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs281_aqua 0.0 1 0 - msubufr msu n14 msu_n14 0.0 1 0 - amsuabufr amsua n15 amsua_n15 0.0 1 0 - amsuabufr amsua n16 amsua_n16 0.0 1 0 - amsuabufr amsua n17 amsua_n17 0.0 1 0 - amsuabufr amsua n18 amsua_n18 0.0 1 0 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 0 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 - airsbufr amsua aqua amsua_aqua 0.0 1 0 - amsubbufr amsub n15 amsub_n15 0.0 1 0 - amsubbufr amsub n16 amsub_n16 0.0 1 0 - amsubbufr amsub n17 amsub_n17 0.0 1 0 - mhsbufr mhs n18 mhs_n18 0.0 1 0 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 0 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f14 ssmi_f14 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 0 - gomebufr gome metop-a gome_metop-a 0.0 1 0 - iasibufr iasi metop-b iasi_metop-b 0.0 1 0 - omibufr omi aura omi_aura 0.0 1 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 1 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 0 - amsuabufr amsua n19 amsua_n19 0.0 1 0 - mhsbufr mhs n19 mhs_n19 0.0 1 0 - tcvitl tcp null tcp 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - atmsbufr atms npp atms_npp 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - seviribufr seviri m11 seviri_m11 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - prepbufr mta_cld null mta_cld 1.0 0 0 - prepbufr gos_ctp null gos_ctp 1.0 0 0 - lgycldbufr larccld null larccld 1.0 0 0 + &SETUP + miter=2,niter(1)=2,niter(2)=1, + write_diag(1)=.true.,write_diag(2)=.true.,write_diag(3)=.true., + gencode=78,qoption=1,tsensible=.true. + factqmin=1.0,factqmax=1.0,factv=0.0,factcldch=0.0,factw10m=1.0,deltim=$DELTIM, + iguess=-1, + oneobtest=.false.,retrieval=.false., + diag_rad=.false.,diag_pcp=.false.,diag_ozone=.false.,diag_aero=.false., + nhr_assimilation=6,min_offset=180,use_compress=.false.,lrun_subdirs=.true., + use_similarity_2dvar=.true., + neutral_stability_windfact_2dvar=.false., + use_prepb_satwnd=.false., + $SETUP + / + &GRIDOPTS + JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, + wrf_nmm_regional=.false.,wrf_mass_regional=.false.,twodvar_regional=.true., + diagnostic_reg=.false., + filled_grid=.false.,half_grid=.true.,netcdf=.false., + / + &BKGERR + hzscl=1.414,1.000,0.707, + vs=0.5,bw=0.0, + / + &ANBKGERR + anisotropic=.true.,an_vs=0.5,ngauss=1, + an_flen_u=-5.,an_flen_t=3.,an_flen_z=-200., + ifilt_ord=2,npass=3,normal=-200,grid_ratio=1.,nord_f2a=4, + rtma_subdomain_option=.true.,triad4=.true.,nsmooth=0,nsmooth_shapiro=0,lreadnorm=.true., + / + &JCOPTS + / + &STRONGOPTS + tlnmc_option=0,nstrong=1,nvmodes_keep=20,period_max=3., + baldiag_full=.true.,baldiag_inc=.true., + / + &OBSQC + dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02,vadfile='prepbufr',hilbert_curve=.true., + buddycheck_t=.false.,buddydiag_save=.false.,oberrflg=.true.,njqc=.true.,vqc=.false., + $OBSQC + / + &OBS_INPUT + dmesh(1)=60.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,time_window_max=3.0, + / +OBS_INPUT:: +! dfile dtype dplat dsis dval dthin dsfcalc + prepbufr ps null ps 1.0 0 0 + prepbufr t null t 1.0 0 0 + prepbufr q null q 1.0 0 0 + prepbufr uv null uv 1.0 0 0 + satwndbufr uv null uv 1.0 0 0 + prepbufr spd null spd 1.0 0 0 + prepbufr wspd10m null wspd10m 1.0 0 0 + satwnd wspd10m null wspd10m 1.0 0 0 + prepbufr uwnd10m null uwnd10m 1.0 0 0 + satwnd uwnd10m null uwnd10m 1.0 0 0 + prepbufr vwnd10m null vwnd10m 1.0 0 0 + satwnd vwnd10m null vwnd10m 1.0 0 0 + prepbufr gust null gust 1.0 0 0 + prepbufr vis null vis 1.0 0 0 + prepbufr td2m null td2m 1.0 0 0 + mxtmdat mxtm null mxtm 1.0 0 0 + mitmdat mitm null mitm 1.0 0 0 + prepbufr mxtm null mxtm 1.0 0 0 + prepbufr mitm null mitm 1.0 0 0 + prepbufr pmsl null pmsl 1.0 0 0 + prepbufr howv null howv 1.0 0 0 + satmar howv null howv 1.0 0 0 + prepbufr tcamt null tcamt 1.0 0 0 + goessky tcamt null tcamt 1.0 0 0 + prepbufr cldch null cldch 1.0 0 0 :: &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., / &LAG_DATA / @@ -1868,221 +454,263 @@ OBS_INPUT:: / &RAPIDREFRESH_CLDSURF dfi_radar_latent_heat_time_period=30.0, + l_closeobs=.true. / &CHEM / &SINGLEOB_TEST - / + maginnov=0.1,magoberr=0.1,oneob_type='t', + oblat=36.,oblon=260.,obpres=1000.,obdattim=${adate}, + obhourset=0., + &NST / " ;; -nems_nmmb) + rrfs_3denvar_glbens) -# Define namelist for nems nmmb run +# Define namelist for rrfs 3d hybrid envar run with global ensembles export gsi_namelist=" &SETUP - miter=2,niter(1)=2,niter(2)=1,niter_no_qc(1)=1, + miter=1,niter(1)=2,niter(2)=2, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0,deltim=$DELTIM, + qoption=2,print_obs_para=.true.,diag_radardbz=.false., + if_model_dbz=.false., static_gsi_nopcp_dbz=0.0, + rmesh_dbz=4.0,rmesh_vr=4.0,zmesh_dbz=1000.0,zmesh_vr=1000.0, + missing_to_nopcp=.false.,radar_no_thinning=.true., + gencode=78,factqmin=0.0,factqmax=0.0, iguess=-1, + lread_obs_save=.false.,lread_obs_skip=.false., oneobtest=.false.,retrieval=.false., nhr_assimilation=3,l_foto=.false., - use_pbl=.false.,use_compress=.false.,nsig_ext=13,preserve_restart_date=.true., - use_gfs_ozone=.true.,check_gfs_ozone_date=.true.,regional_ozone=.true.,gpstop=30. - lrun_subdirs=.true., - $SETUP + use_pbl=.false.,use_prepb_satwnd=.false., + newpc4pred=.true.,adp_anglebc=.true.,angord=4, + passive_bc=.true.,use_edges=.false.,emiss_bc=.true., + diag_precon=.true.,step_start=1.e-3, + l4densvar=.false.,nhr_obsbin=3, + use_gfs_nemsio=.false.,use_gfs_ncio=.true.,reset_bad_radbc=.true., + netcdf_diag=.false.,binary_diag=.true., + l_obsprvdiag=.false., / &GRIDOPTS - JCAP=$JCAP,JCAP_B=$JCAP_B,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS, - wrf_nmm_regional=.false.,wrf_mass_regional=.false.,nems_nmmb_regional=.true.,diagnostic_reg=.false., - nmmb_reference_grid='H',grid_ratio_nmmb=1.412, - filled_grid=.false.,half_grid=.true.,netcdf=.false., + fv3_regional=.true.,grid_ratio_fv3_regional=2.0,nvege_type=20, + fv3_io_layout_y=1, / &BKGERR - hzscl=0.373,0.746,1.50, - vs=0.6,bw=0.,fstat=.false., - / + vs=1.0, + hzscl=0.7,1.4,2.80, + bw=0.,fstat=.true., + usenewgfsberror=.true., +/ &ANBKGERR anisotropic=.false., / &JCOPTS / &STRONGOPTS - tlnmc_option=0,nstrong=0,nvmodes_keep=8,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., / &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, - vadfile='prepbufr',njqc=.false.,vqc=.true., + dfact=0.75,dfact1=3.0,noiqc=.false.,c_varqc=0.02,vadfile='prepbufr', + vadwnd_l2rw_qc=.true., / &OBS_INPUT - dmesh(1)=1200.0,dmesh(2)=2000.0,dmesh(3)=2500.0,dmesh(4)=1000.0,time_window_max=0.5,ext_sonde=.true., + dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,time_window_rad=1.0,ext_sonde=.true., / OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - prepbufr sst null sst 0.0 0 0 - gpsrobufr $gps_dtype null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs2bufr hirs2 n14 hirs2_n14 0.0 1 1 - hirs3bufr_skip hirs3 n16 hirs3_n16 0.0 1 1 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 1 - hirs4bufr_skip hirs4 n18 hirs4_n18 0.0 1 1 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gsndrbufr sndr g11 sndr_g11 0.0 1 0 - gsndrbufr sndr g12 sndr_g12 0.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 2 1 - msubufr msu n14 msu_n14 0.0 1 1 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 1 - amsuabufr_skip amsua n16 amsua_n16 0.0 1 1 - amsuabufr_skip amsua n17 amsua_n17 0.0 1 1 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 1 - amsubbufr_skip amsub n15 amsub_n15 0.0 1 1 - amsubbufr_skip amsub n16 amsub_n16 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 1 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 1 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 1 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 3 1 - gomebufr gome metop-a gome_metop-a 0.0 4 0 - omibufr omi aura omi_aura 0.0 4 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - mlsbufr mls30 aura mls30_aura 1.0 0 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 4 0 +! dfile dtype dplat dsis dval dthin dsfcalc + dbzobs.nc dbz null dbz 1.0 0 0 + prepbufr ps null ps 1.0 0 0 + prepbufr t null t 1.0 0 0 + prepbufr q null q 1.0 0 0 + prepbufr pw null pw 1.0 0 0 + satwndbufr uv null uv 1.0 0 0 + prepbufr uv null uv 1.0 0 0 + prepbufr spd null spd 1.0 0 0 + prepbufr dw null dw 1.0 0 0 + l2rwbufr rw null l2rw 1.0 0 0 + prepbufr sst null sst 1.0 0 0 + gpsrobufr gps_ref null gps 1.0 0 0 + ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 + tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 + sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 + sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 + sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 + hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 + hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 + hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 2 0 + hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 + hirs4bufr hirs4 n19 hirs4_n19 0.0 2 0 + hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 2 0 + gimgrbufr goes_img g11 imgr_g11 0.0 1 0 + gimgrbufr goes_img g12 imgr_g12 0.0 1 0 + airsbufr airs aqua airs_aqua 0.0 2 0 + amsuabufr amsua n15 amsua_n15 0.0 2 0 + amsuabufr amsua n18 amsua_n18 0.0 2 0 + amsuabufr amsua n19 amsua_n19 0.0 2 0 + amsuabufr amsua metop-a amsua_metop-a 0.0 2 0 + amsuabufr amsua metop-b amsua_metop-b 0.0 2 0 + airsbufr amsua aqua amsua_aqua 0.0 2 0 + amsubbufr amsub n17 amsub_n17 0.0 1 0 + mhsbufr mhs n18 mhs_n18 0.0 2 0 + mhsbufr mhs n19 mhs_n19 0.0 2 0 + mhsbufr mhs metop-a mhs_metop-a 0.0 2 0 + mhsbufr mhs metop-b mhs_metop-b 0.0 2 0 + ssmitbufr ssmi f13 ssmi_f13 0.0 2 0 + ssmitbufr ssmi f14 ssmi_f14 0.0 2 0 + ssmitbufr ssmi f15 ssmi_f15 0.0 2 0 + amsrebufr amsre_low aqua amsre_aqua 0.0 2 0 + amsrebufr amsre_mid aqua amsre_aqua 0.0 2 0 + amsrebufr amsre_hig aqua amsre_aqua 0.0 2 0 + ssmisbufr ssmis f16 ssmis_f16 0.0 2 0 + ssmisbufr ssmis f17 ssmis_f17 0.0 2 0 + ssmisbufr ssmis f18 ssmis_f18 0.0 2 0 + ssmisbufr ssmis f19 ssmis_f19 0.0 2 0 + gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 + gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 + gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 + gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 + gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 + gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 + gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 + gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 + gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 + gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 + gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 + gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 + gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 2 0 + gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 2 0 + gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 2 0 + gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 2 0 + iasibufr iasi metop-a iasi_metop-a 0.0 2 0 + gomebufr gome metop-a gome_metop-a 0.0 2 0 + atmsbufr atms npp atms_npp 0.0 2 0 + atmsbufr atms n20 atms_n20 0.0 2 0 + crisbufr cris npp cris_npp 0.0 2 0 + crisfsbufr cris-fsr npp cris-fsr_npp 0.0 2 0 + crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 2 0 + abibufr abi g16 abi_g16 0.0 2 0 + mlsbufr mls30 aura mls30_aura 0.0 0 0 + oscatbufr uv null uv 0.0 0 0 + prepbufr mta_cld null mta_cld 1.0 0 0 + prepbufr gos_ctp null gos_ctp 1.0 0 0 + refInGSI rad_ref null rad_ref 1.0 0 0 + lghtInGSI lghtn null lghtn 1.0 0 0 + larcInGSI larccld null larccld 1.0 0 0 :: &SUPEROB_RADAR - del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., - l2superob_only=.false., + del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., l2superob_only=.false., / &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=${HYBENS_REGIONAL}, - n_ens=${ENSEMBLE_SIZE_REGIONAL}, - uv_hyb_ens=${HYBENS_UV_REGIONAL}, - beta_s0=${BETA_S0_REGIONAL}, - readin_beta=.false., - s_ens_h=${HYBENS_HOR_SCALE_REGIONAL}, - s_ens_v=${HYBENS_VER_SCALE_REGIONAL}, - generate_ens=${GENERATE_ENS_REGIONAL}, - aniso_a_en=${HYBENS_ANISO_REGIONAL}, - nlon_ens=${NLON_ENS_REGIONAL}, - nlat_ens=${NLAT_ENS_REGIONAL}, - jcap_ens=${JCAP_ENS_REGIONAL}, - jcap_ens_test=${JCAP_ENS_TEST_REGIONAL}, - full_ensemble=.true.,pwgtflg=.true., + l_hyb_ens=${ifhyb}, + uv_hyb_ens=.true., + q_hyb_ens=.false., + aniso_a_en=.false.,generate_ens=.false., + n_ens=${nummem}, + beta_s0=0.15,s_ens_h=110,s_ens_v=3, + regional_ensemble_option=1, + pseudo_hybens = .false., + grid_ratio_ens = 3, + l_ens_in_diff_time=.true., + ensemble_path='', + i_en_perts_io=1, + jcap_ens=574, + fv3sar_bg_opt=0, + readin_localization=.true., + ens_fast_read=.false., / &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, + dfi_radar_latent_heat_time_period=20.0, + metar_impact_radius=10.0, + metar_impact_radius_lowCloud=4.0, + l_gsd_terrain_match_surfTobs=.true., + l_sfcobserror_ramp_t=.true., + l_sfcobserror_ramp_q=.true., + l_PBL_pseudo_SurfobsT=.false., + l_PBL_pseudo_SurfobsQ=.false., + l_PBL_pseudo_SurfobsUV=.false., + pblH_ration=0.4, + pps_press_incr=40.0, + l_gsd_limit_ocean_q=.true., + l_pw_hgt_adjust=.true., + l_limit_pw_innov=.true., + max_innov_pct=0.1, + l_cleanSnow_WarmTs=.true., + r_cleanSnow_WarmTs_threshold=5.0, + l_conserve_thetaV=.true., + i_conserve_thetaV_iternum=3, + l_gsd_soilTQ_nudge=.false., + l_cld_bld=.true., + l_numconc=.true., + l_closeobs=.true., + cld_bld_hgt=1200.0, + build_cloud_frac_p=0.50, + clear_cloud_frac_p=0.10, + iclean_hydro_withRef_allcol=1, + i_use_2mQ4B=2, + i_use_2mT4B=1, + i_gsdcldanal_type=0, + i_gsdsfc_uselist=1, + i_lightpcp=1, + i_sfct_gross=1, + i_coastline=3, + i_gsdqc=2, / &CHEM / + &NST + / &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=${adate}, + maginnov=1.0,magoberr=0.8,oneob_type='t', + oblat=38.,oblon=279.,obpres=500.,obdattim=2020040500, obhourset=0., - - &NST / " ;; -nems_nmmb_4denvar) + netcdf_fv3_regional) -# Define namelist for 4DEnVar nems nmmb run +# Define namelist for netcdf fv3 run export gsi_namelist=" &SETUP - miter=2,niter(1)=2,niter(2)=1,niter_no_qc(1)=1, + miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - gencode=78,qoption=2, - factqmin=0.0,factqmax=0.0, - iguess=-1,use_gfs_ozone=.true., - oneobtest=.false.,retrieval=.false., - nhr_assimilation=6,l_foto=.false., - use_pbl=.false.,gpstop=30., - print_diag_pcg=.true., + qoption=2, + factqmin=0.0,factqmax=0.0,deltim=$DELTIM, + iguess=-1, newpc4pred=.true., adp_anglebc=.true., angord=4, - passive_bc=.false., use_edges=.false., emiss_bc=.true., diag_precon=.true., step_start=1.e-3, - l4densvar=.true.,nhr_obsbin=3, + nhr_assimilation=3,l_foto=.false., + use_pbl=.false.,use_compress=.false.,gpstop=30., + lrun_subdirs=.true., $SETUP / &GRIDOPTS - wrf_nmm_regional=.false.,wrf_mass_regional=.false.,nems_nmmb_regional=.true.,diagnostic_reg=.false., - nmmb_reference_grid='H',grid_ratio_nmmb=3.0, - filled_grid=.false.,half_grid=.false.,netcdf=.false., - $GRIDOPTS + fv3_regional=.true.,grid_ratio_fv3_regional=3.0, / &BKGERR hzscl=0.373,0.746,1.50, - vs=1.0,bw=0.,fstat=.true., - $BKGERR + vs=0.6,bw=0.,fstat=.false., / &ANBKGERR anisotropic=.false., - $ANBKGERR / &JCOPTS - $JCOPTS / &STRONGOPTS - nstrong=0,nvmodes_keep=20,period_max=3., - baldiag_full=.true.,baldiag_inc=.true., - $STRONGOPTS / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.true.,c_varqc=0.02, - vadfile='prepbufr',njqc=.false.,vqc=.true., - $OBSQC + vadfile='prepbufr',oberrflg=.false.,njqc=.false.,vqc=.true., / &OBS_INPUT - dmesh(1)=120.0,time_window_max=3.0,ext_sonde=.true., - $OBS_INPUT + dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,ext_sonde=.true., / OBS_INPUT:: ! dfile dtype dplat dsis dval dthin dsfcalc @@ -2102,47 +730,40 @@ OBS_INPUT:: sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 hirs2bufr hirs2 n14 hirs2_n14 0.0 1 0 - hirs3bufr_skip hirs3 n16 hirs3_n16 0.0 1 0 + hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr_skip hirs4 n18 hirs4_n18 0.0 1 0 + hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 0 + hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 0 gsndrbufr sndr g11 sndr_g11 0.0 1 0 gsndrbufr sndr g12 sndr_g12 0.0 1 0 gimgrbufr goes_img g11 imgr_g11 0.0 1 0 gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 0 + airsbufr airs aqua airs281_aqua 0.0 1 0 msubufr msu n14 msu_n14 0.0 1 0 - amsuabufr_skip amsua n15 amsua_n15 0.0 1 0 - amsuabufr_skip amsua n16 amsua_n16 0.0 1 0 - amsuabufr_skip amsua n17 amsua_n17 0.0 1 0 - amsuabufr_skip amsua n18 amsua_n18 0.0 1 0 + amsuabufr amsua n15 amsua_n15 0.0 1 0 + amsuabufr amsua n16 amsua_n16 0.0 1 0 + amsuabufr amsua n17 amsua_n17 0.0 1 0 + amsuabufr amsua n18 amsua_n18 0.0 1 0 amsuabufr amsua metop-a amsua_metop-a 0.0 1 0 - airsbufr_skip amsua aqua amsua_aqua 0.0 1 0 - amsubbufr_skip amsub n15 amsub_n15 0.0 1 0 - amsubbufr_skip amsub n16 amsub_n16 0.0 1 0 + amsuabufr amsua metop-b amsua_metop-b 0.0 1 0 + airsbufr amsua aqua amsua_aqua 0.0 1 0 + amsubbufr amsub n15 amsub_n15 0.0 1 0 + amsubbufr amsub n16 amsub_n16 0.0 1 0 amsubbufr amsub n17 amsub_n17 0.0 1 0 - mhsbufr_skip mhs n18 mhs_n18 0.0 1 0 + mhsbufr mhs n18 mhs_n18 0.0 1 0 mhsbufr mhs metop-a mhs_metop-a 0.0 1 0 + mhsbufr mhs metop-b mhs_metop-b 0.0 1 0 ssmitbufr ssmi f13 ssmi_f13 0.0 1 0 + ssmitbufr ssmi f14 ssmi_f14 0.0 1 0 ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - gsnd1bufr_skip sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr_skip sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr_skip sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr_skip sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr_skip sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr_skip sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr_skip sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr_skip sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr_skip sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr_skip sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr_skip sndrd4 g13 sndrD4_g13 0.0 1 0 iasibufr iasi metop-a iasi_metop-a 0.0 1 0 gomebufr gome metop-a gome_metop-a 0.0 1 0 + iasibufr iasi metop-b iasi_metop-b 0.0 1 0 omibufr omi aura omi_aura 0.0 1 0 sbuvbufr sbuv2 n19 sbuv8_n19 0.0 1 0 hirs4bufr hirs4 n19 hirs4_n19 0.0 1 0 @@ -2150,51 +771,35 @@ OBS_INPUT:: mhsbufr mhs n19 mhs_n19 0.0 1 0 tcvitl tcp null tcp 0.0 0 0 satwndbufr uv null uv 0.0 0 0 + atmsbufr atms npp atms_npp 0.0 1 0 + crisbufr cris npp cris_npp 0.0 1 0 + crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 + seviribufr seviri m08 seviri_m08 0.0 1 0 + seviribufr seviri m09 seviri_m09 0.0 1 0 + seviribufr seviri m10 seviri_m10 0.0 1 0 + seviribufr seviri m11 seviri_m11 0.0 1 0 gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - ompsnpbufr ompsnp npp ompsnp_npp 0.0 0 0 - ompstcbufr ompstc8 npp ompstc8_npp 0.0 1 0 + prepbufr mta_cld null mta_cld 1.0 0 0 + prepbufr gos_ctp null gos_ctp 1.0 0 0 + lgycldbufr larccld null larccld 1.0 0 0 :: &SUPEROB_RADAR del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000., l2superob_only=.false., - $SUPEROB_RADAR / &LAG_DATA - $LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true., - n_ens=10, - uv_hyb_ens=.true., - beta_s0=0.25, - readin_beta=.false., - readin_beta=.true., - s_ens_h=800, - s_ens_v=5, - generate_ens=.false., - regional_ensemble_option=1, - aniso_a_en=.false., - nlon_ens=0, - nlat_ens=0, - jcap_ens=0, - jcap_ens_test=0, - full_ensemble=.true.,pwgtflg=.true., - $HYBRID_ENSEMBLE / &RAPIDREFRESH_CLDSURF - $RAPIDREFRESH_CLDSURF + dfi_radar_latent_heat_time_period=30.0, / &CHEM - $CHEM / &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=270.,obpres=850.,obdattim=2015031300, - obhourset=0., - $SINGLEOB_TEST / &NST / @@ -2427,7 +1032,7 @@ OBS_INPUT:: &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=80,uv_hyb_ens=.true.,beta_s0=0.2, + l_hyb_ens=.true.,n_ens=10,uv_hyb_ens=.true.,beta_s0=0.2, readin_beta=.true., s_ens_h=300,s_ens_v=-0.5,readin_localization=.false., generate_ens=.false.,regional_ensemble_option=1,grid_ratio_ens=1, @@ -2530,7 +1135,7 @@ OBS_INPUT:: &LAG_DATA / &HYBRID_ENSEMBLE - l_hyb_ens=.true.,n_ens=80,uv_hyb_ens=.true.,beta_s0=0.2, + l_hyb_ens=.true.,n_ens=10,uv_hyb_ens=.true.,beta_s0=0.2, readin_beta=.true., s_ens_h=150,s_ens_v=-0.5,readin_localization=.false., generate_ens=.false.,regional_ensemble_option=1,grid_ratio_ens=1, @@ -2553,115 +1158,6 @@ OBS_INPUT:: " ;; - global_C96_fv3aero) - -# Define namelist for global run (aerosol analysis) - -export gsi_namelist=" - &SETUP - miter=3, - niter(1)=100,niter(2)=100,niter(3)=1, - niter_no_qc(1)=50,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=0,deltim=400, - factqmin=0.0,factqmax=0.0, - iguess=-1, - tzr_qc=1, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., - use_gfs_nemsio=.true.,sfcnst_comb=.true., - use_readin_anl_sfcmask=.false., - lrun_subdirs=.true., - crtm_coeffs_path='./crtm_coeffs/', - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,nhr_obsbin=3, - cwoption=3,imp_physics=11,lupp=.true., - netcdf_diag=.true.,binary_diag=.true., - lobsdiag_forenkf=.false., - diag_aero=.true., use_fv3_aero=.true.,offtime_data=.true., - diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false., - / - - &GRIDOPTS - JCAP_B=190,JCAP=190,NLAT=194,NLON=384,nsig=64, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - / - - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - / - - &ANBKGERR - anisotropic=.false., - / - - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, - / - - &STRONGOPTS - tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - / - - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.true., - aircraft_t_bc=.false.,biaspredt=1000.0,upd_aircraft=.true.,cleanup_tail=.true., - / - - &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,time_window_max=3.0, - / - -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - modisaodbufr modis_aod aqua v.modis_aqua 1.0 1 0 - modisaodbufr modis_aod terra v.modis_terra 1.0 1 0 -:: - - &SUPEROB_RADAR - / - - &LAG_DATA - / - - &HYBRID_ENSEMBLE - l_hyb_ens=.false., - generate_ens=.false., - beta_s0=0.125,readin_beta=.false., - s_ens_h=800.,s_ens_v=-0.8,readin_localization=.true., - aniso_a_en=.false.,oz_univ_static=.false.,uv_hyb_ens=.true., - ensemble_path='./ensemble_data/', - ens_fast_read=.true., - / - - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - / - - &CHEM - laeroana_gocart=.true.,aod_qa_limit=-1000, - / - - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=2019061718, - obhourset=0., - / - - &NST - nst_gsi=3, - nstinfo=4,fac_dtl=1,fac_tsl=1,zsea1=0,zsea2=0, - /" - -;; *) # EXIT out for unresolved job_name diff --git a/regression/regression_nl_update.sh b/regression/regression_nl_update.sh index d8d52b216..ddd302c4d 100755 --- a/regression/regression_nl_update.sh +++ b/regression/regression_nl_update.sh @@ -2,22 +2,9 @@ # First, generate new variable to hold the first 6 characters of the experiment. -#if [[ `expr substr $exp $((${#exp}-4)) ${#exp}` = "updat" ]]; then -if [[ `expr substr $exp 1 6` = "global" ]]; then - if [[ `expr substr $exp 8 5` = "4dvar" ]]; then - export SETUP_update="" - export SETUP_enkf="" - elif [[ `expr substr $exp 8 7` = "lanczos" ]]; then - export SETUP_update="" - export SETUP_enkf="" - elif [[ `expr substr $exp 12 6` = "ozonly" ]]; then - export SETUP_update="newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false.,diag_precon=.true.,step_start=1.0e-3,emiss_bc=.true.," - export SETUP_enkf="univaroz=.true.,adp_anglebc=.true.,angord=4,use_edges=.false.,emiss_bc=.true.," - else - export SETUP_update="newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false.,diag_precon=.true.,step_start=1.0e-3,emiss_bc=.true.,cwoption=3," - export SETUP_enkf="univaroz=.true.,adp_anglebc=.true.,angord=4,use_edges=.false.,emiss_bc=.true.," - fi -fi +export SETUP_update="" +export SETUP_enkf="" + if [[ `expr substr $exp 1 4` = "rtma" ]]; then export OBSQC_update="pvis=0.2,pcldch=0.1,scale_cv=1.0,estvisoe=2.61,estcldchoe=2.3716,vis_thres=16000.,cldch_thres=16000.," else @@ -27,10 +14,8 @@ export GRIDOPTS_update="" export BKGVERR_update="" export ANBKGERR_update="" export JCOPTS_update="" -if [[ `expr substr $exp 1 6` = "global" ]]; then - export STRONGOPTS_update="" - export OBSQC_update="vqc=.false.,nvqc=.true.," -fi +export STRONGOPTS_update="" +export OBSQC_update="" export OBSINPUT_update="" export SUPERRAD_update="" export SINGLEOB_update="" diff --git a/regression/regression_param.sh b/regression/regression_param.sh index 65f6774da..6024dbdb5 100755 --- a/regression/regression_param.sh +++ b/regression/regression_param.sh @@ -1,3 +1,5 @@ +set -x + regtest=$1 case $machine in @@ -6,26 +8,21 @@ case $machine in sub_cmd="sub_hera" memnode=96 numcore=40 + ;; + Orion) + sub_cmd="sub_orion" + memnode=192 + numcore=40 ;; Jet) sub_cmd="sub_jet" memnode=96 numcore=40 ;; - WCOSS) - sub_cmd="sub_wcoss -a GDAS-T2O -d $PWD" - memnode=64 # Phase-2 WCOSS - numcore=24 # Phase-2 WCOSS - ;; - WCOSS_C) - sub_cmd="sub_wcoss_c -a GDAS-T2O -d $PWD" - memnode=64 - numcore=24 - ;; - WCOSS_D) - sub_cmd="sub_wcoss_d -a ibm -d $PWD" - memnode=128 - numcore=28 + wcoss2) + sub_cmd="sub_wcoss2" + memnode=512 + numcore=128 ;; Discover) sub_cmd="sub_discover" @@ -40,11 +37,6 @@ case $machine in esac # Maximum memory per task for above machines -# wcoss_c : 64 Gb / 24 cores = 2.67 Gb / core -# wcoss_d : 128 Gb / 28 cores = 4.57 Gb / core -# theia : 64 Gb / 24 cores = 2.67 Gb / core -# discover: -# cheyenne: # Select minimim memory per core for regression tests export memnode=${memnode:-64} export numcore=${numcore:-24} @@ -52,26 +44,23 @@ export maxmem=$((($memnode*1024*1024)/$numcore)) # Kb / core case $regtest in - global_T62) + global_3dvar) if [[ "$machine" = "Hera" ]]; then - topts[1]="0:50:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:50:00" ; popts[2]="12/9/" ; ropts[2]="/2" + topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:50:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:50:00" ; popts[2]="12/9/" ; ropts[2]="/2" + topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="0:30:00" ; popts[1]="16/2/" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:30:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:30:00" ; popts[1]="36/4/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:30:00" ; popts[2]="72/8/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:30:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="28/4/" ; ropts[2]="/2" + elif [[ "$machine" = "wcoss2" ]]; then + topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" elif [[ "$machine" = "Discover" ]]; then topts[1]="0:30:00" ; popts[1]="36/2" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="72/3" ; ropts[2]="/2" @@ -85,57 +74,21 @@ case $regtest in ;; - global_T62_ozonly) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="12/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/2/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="12/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/2/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/2/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/2/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="12/2/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="16/1" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="16/2" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:45:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_4dvar_T62) + global_4dvar) if [[ "$machine" = "Hera" ]]; then topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" elif [[ "$machine" = "Jet" ]]; then topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:35:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:25:00" ; popts[2]="16/4/" ; ropts[2]="/2" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="0:35:00" ; popts[1]="16/2/" ; ropts[1]="/1" topts[2]="0:25:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="1:35:00" ; popts[1]="48/12/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="1:25:00" ; popts[2]="60/15/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then + elif [[ "$machine" = "wcoss2" ]]; then topts[1]="0:15:00" ; popts[1]="28/2/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="28/4/" ; ropts[2]="/2" elif [[ "$machine" = "Discover" ]]; then @@ -147,14 +100,11 @@ case $regtest in topts[1]="0:45:00" if [[ "$machine" = "Hera" ]]; then popts[1]="12/5/" + elif [[ "$machine" = "Orion" ]]; then + popts[1]="12/5/" elif [[ "$machine" = "Jet" ]]; then popts[1]="12/5/" - elif [[ "$machine" = "WCOSS" ]]; then - popts[1]="16/4/" - elif [[ "$machine" = "WCOSS_C" ]]; then - popts[1]="48/12/" - topts[1]="3:00:00" - elif [[ "$machine" = "WCOSS_D" ]]; then + elif [[ "$machine" = "wcoss2" ]]; then popts[1]="28/4/" topts[1]="3:00:00" fi @@ -164,95 +114,26 @@ case $regtest in ;; - global_hybrid_T126) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:45:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_4denvar_T126) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:35:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:35:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="6/10/" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="2:00:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_fv3_4denvar_T126) + global_4denvar) if [[ "$machine" = "Hera" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" + topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/10/" ; ropts[2]="/2" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/12/" ; ropts[2]="/2" elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" + topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/10/" ; ropts[2]="/2" elif [[ "$machine" = "Discover" ]]; then topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:35:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:35:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" + elif [[ "$machine" = "wcoss2" ]]; then + topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/10/" ; ropts[2]="/2" fi if [ "$debug" = ".true." ] ; then @@ -263,135 +144,27 @@ case $regtest in ;; - global_fv3_4denvar_C192) + rrfs_3denvar_glbens) if [[ "$machine" = "Hera" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" + topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1" elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="1:59:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:35:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:35:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1" - topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="1:30:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_lanczos_T62) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:30:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:30:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:20:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:20:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:20:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:20:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:20:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:20:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:20:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:20:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:45:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_nemsio_T62) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:30:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:30:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:45:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - arw_binary | arw_netcdf) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/2/" ; ropts[2]="/1" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/2/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="20/2/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="1024/1" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="28/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/2/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="16/1" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="20/2" ; ropts[2]="/2" + topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1" + elif [[ "$machine" = "wcoss2" ]]; then + topts[1]="0:15:00" ; popts[1]="64/1/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="128/2/" ; ropts[2]="/1" fi if [ "$debug" = ".true." ] ; then topts[1]="0:30:00" fi - scaling[1]=4; scaling[2]=10; scaling[3]=4 + scaling[1]=2; scaling[2]=10; scaling[3]=4 ;; @@ -400,16 +173,13 @@ case $regtest in if [[ "$machine" = "Hera" ]]; then topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1" + topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1" elif [[ "$machine" = "Jet" ]]; then topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/2/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="20/2/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="1024/1" - elif [[ "$machine" = "WCOSS_D" ]]; then + elif [[ "$machine" = "wcoss2" ]]; then topts[1]="0:15:00" ; popts[1]="28/1/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="28/2/" ; ropts[2]="/1" fi @@ -422,129 +192,27 @@ case $regtest in ;; - nmm_binary ) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:30:00" ; popts[1]="6/6/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:30:00" ; popts[1]="6/6/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:30:00" ; popts[1]="7/12/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/12/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:30:00" ; popts[1]="7/12/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/12/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:30:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:30:00" ; popts[2]="60/10/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:30:00" ; popts[1]="7/24/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/24/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="1:00:00" - fi - - scaling[1]=8; scaling[2]=10; scaling[3]=8 - - ;; - - nmm_netcdf) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="4/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="4/4/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="4/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="4/4/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="8/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/1/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="8/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/1/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="8/2/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="14/1/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/2/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="8/1" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="16/1" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:30:00" - fi - - scaling[1]=5; scaling[2]=10; scaling[3]=2 - -;; - - nmmb_nems_4denvar) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:30:00" ; popts[1]="7/10/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/10/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:30:00" ; popts[1]="7/10/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/10/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:30:00" ; popts[1]="7/10/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/10/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:30:00" ; popts[1]="7/10/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="9/10/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="1:30:00" ; popts[1]="72/9/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="1:30:00" ; popts[2]="96/12/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="7/14/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="9/14/" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="1:00:00" - fi - - scaling[1]=8; scaling[2]=10; scaling[3]=8 - -;; - rtma) if [[ "$machine" = "Hera" ]]; then topts[1]="0:30:00" ; popts[1]="6/12/" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="8/12/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then + elif [[ "$machine" = "Orion" ]]; then topts[1]="0:30:00" ; popts[1]="6/12/" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="8/12/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:30:00" ; popts[1]="8/10/" ; ropts[1]="/1" + elif [[ "$machine" = "Jet" ]]; then + topts[1]="0:30:00" ; popts[1]="6/12/" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="8/12/" ; ropts[2]="/1" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="0:15:00" ; popts[1]="8/6/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="1:15:00" ; popts[1]="48/6/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="1:15:00" ; popts[2]="64/8/" ; ropts[2]="1024/1" - elif [[ "$machine" = "WCOSS_D" ]]; then + elif [[ "$machine" = "wcoss2" ]]; then topts[1]="0:30:00" ; popts[1]="14/8/" ; ropts[1]="/1" topts[2]="0:30:00" ; popts[2]="14/14/" ; ropts[2]="/2" fi if [ "$debug" = ".true." ] ; then topts[1]="3:00:00" - if [[ "$machine" = "WCOSS_C" ]]; then - popts[1]="64/8/" - fi fi scaling[1]=10; scaling[2]=10; scaling[3]=2 @@ -556,19 +224,16 @@ case $regtest in if [[ "$machine" = "Hera" ]]; then topts[1]="0:20:00" ; popts[1]="6/6/" ; ropts[1]="/1" topts[2]="0:20:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "Jet" ]]; then + elif [[ "$machine" = "Orion" ]]; then topts[1]="0:20:00" ; popts[1]="6/6/" ; ropts[1]="/1" topts[2]="0:20:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS" ]]; then + elif [[ "$machine" = "Jet" ]]; then topts[1]="0:20:00" ; popts[1]="6/6/" ; ropts[1]="/1" topts[2]="0:20:00" ; popts[2]="8/8/" ; ropts[2]="/1" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="0:20:00" ; popts[1]="6/6/" ; ropts[1]="/1" topts[2]="0:20:00" ; popts[2]="8/8/" ; ropts[2]="/1" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="1:20:00" ; popts[1]="48/8/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="1:20:00" ; popts[2]="60/10/" ; ropts[2]="1024/1" - elif [[ "$machine" = "WCOSS_D" ]]; then + elif [[ "$machine" = "wcoss2" ]]; then topts[1]="0:15:00" ; popts[1]="10/10/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="14/14/" ; ropts[2]="/2" fi @@ -581,26 +246,23 @@ case $regtest in ;; - global_enkf_T62) + global_enkf) if [[ "$machine" = "Hera" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" + topts[1]="0:10:00" ; popts[1]="12/3/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/5/" ; ropts[2]="/2" + elif [[ "$machine" = "Orion" ]]; then + topts[1]="0:10:00" ; popts[1]="12/3/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/5/" ; ropts[2]="/2" elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" + topts[1]="0:10:00" ; popts[1]="12/3/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="12/5/" ; ropts[2]="/2" elif [[ "$machine" = "Cheyenne" ]]; then topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:25:00" ; popts[1]="20/4/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:25:00" ; popts[2]="20/5/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" + elif [[ "$machine" = "wcoss2" ]]; then + topts[1]="0:10:00" ; popts[1]="16/2/" ; ropts[1]="/1" + topts[2]="0:10:00" ; popts[2]="16/4/" ; ropts[2]="/2" fi if [ "$debug" = ".true." ] ; then @@ -611,72 +273,6 @@ case $regtest in ;; - global_C96_fv3aero) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:30:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="12/9/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:30:00" ; popts[1]="12/3/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="12/9/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="36/4/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="72/8/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:15:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="20/4" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="40/2" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="0:45:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - - global_C96_fv3aerorad) - - if [[ "$machine" = "Hera" ]]; then - topts[1]="0:20:00" ; popts[1]="16/4/" ; ropts[1]="/1" - topts[2]="0:20:00" ; popts[2]="16/8/" ; ropts[2]="/2" - elif [[ "$machine" = "Jet" ]]; then - topts[1]="0:20:00" ; popts[1]="16/4/" ; ropts[1]="/1" - topts[2]="0:20:00" ; popts[2]="16/8/" ; ropts[2]="/2" - elif [[ "$machine" = "Cheyenne" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS" ]]; then - topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1" - topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2" - elif [[ "$machine" = "WCOSS_C" ]]; then - topts[1]="0:15:00" ; popts[1]="36/4/" ; ropts[1]="1024/1" # sub_wcoss_c popts are "#tasks/#nodes/" - topts[2]="0:15:00" ; popts[2]="72/8/" ; ropts[2]="1024/2" - elif [[ "$machine" = "WCOSS_D" ]]; then - topts[1]="0:30:00" ; popts[1]="28/2/" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="28/4/" ; ropts[2]="/2" - elif [[ "$machine" = "Discover" ]]; then - topts[1]="0:30:00" ; popts[1]="20/4" ; ropts[1]="/1" - topts[2]="0:30:00" ; popts[2]="40/2" ; ropts[2]="/2" - fi - - if [ "$debug" = ".true." ] ; then - topts[1]="1:00:00" - fi - - scaling[1]=10; scaling[2]=8; scaling[3]=4 - - ;; - *) # EXIT out for unresolved regtest echo "unknown $regtest" @@ -712,6 +308,9 @@ if [[ "$machine" = "Hera" ]]; then export MPI_BUFS_PER_HOST=256 export MPI_GROUP_MAX=256 export APRUN="srun" +elif [[ "$machine" = "Orion" ]]; then + export OMP_STACKSIZE=2048M + export APRUN="srun -n \$ntasks" elif [[ "$machine" = "Jet" ]]; then export OMP_STACKSIZE=1024M export MPI_BUFS_PER_PROC=256 @@ -724,23 +323,12 @@ elif [[ "$machine" = "Cheyenne" ]]; then export MPI_BUFS_PER_HOST=256 export MPI_GROUP_MAX=256 export APRUN="mpirun -v -np \$NCPUS" -elif [[ "$machine" = "WCOSS" ]]; then - export MP_USE_BULK_XFER=yes - export MP_BULK_MIN_MSG_SIZE=64k - export APRUN="mpirun.lsf" - if [ "$debug" = ".true." ] ; then - export MP_DEBUG_NOTIMEOUT=yes - fi -elif [[ "$machine" = "WCOSS_C" ]]; then - export KMP_AFFINITY=disabled +elif [[ "$machine" = "wcoss2" ]]; then + export OMP_PLACES=cores export OMP_STACKSIZE=2G export FORT_BUFFERED=true - export APRUN="mpirun -v -np \$PBS_NP" -elif [[ "$machine" = "WCOSS_D" ]]; then - export KMP_AFFINITY=scatter - export KMP_STACKSIZE=2G - export FORT_BUFFERED=true - export APRUN="mpirun" + export FI_OFI_RXM_SAR_LIMIT=3145728 + export APRUN="mpiexec -n \$ntasks -ppn \$ppn --cpu-bind core --depth \$threads" elif [[ "$machine" = "Discover" ]]; then export APRUN="mpiexec_mpt -np \$SLURM_NTASKS" fi diff --git a/regression/regression_test.sh b/regression/regression_test.sh index f9a736c05..0bcb9f4d9 100755 --- a/regression/regression_test.sh +++ b/regression/regression_test.sh @@ -8,10 +8,6 @@ exp1=$1 exp2=$3 exp3=$2 -#exp1=$global_T62_updat_exp1 -#exp2=$global_T62_contrl_exp1 -#exp3=$global_T62_updat_exp2 - input=$5 #input=tmp62 @@ -50,6 +46,9 @@ for exp in $list; do $ncp $savdir/$exp/wrf_inout ./wrf_inout.$exp $ncp $savdir/$exp/wrf_inout06 ./wrf_inout06.$exp $ncp $savdir/$exp/siginc.nc ./siginc.nc.$exp + $ncp $savdir/$exp/fv3_dynvars ./fv3_dynvars.$exp + $ncp $savdir/$exp/fv3_sfcdata ./fv3_sfcdata.$exp + $ncp $savdir/$exp/fv3_tracer ./fv3_tracer.$exp done # Grep out penalty/gradient information, run time, and maximum resident memory from stdout file @@ -73,9 +72,6 @@ diff penalty.$exp1.txt penalty.$exp3.txt > penalty.${exp1}-${exp3}.txt exp1_scale=$2 exp2_scale=$4 -#exp1_scale=$global_T62_updat_exp2 -#exp2_scale=$global_T62_contrl_exp2 - # Copy stdout for additional scalability testing list="$exp1_scale $exp2_scale" for exp_scale in $list; do @@ -227,18 +223,18 @@ fi if [[ $(grep -c 'cost,grad,step' penalty.${exp1}-${exp2}.txt) = 0 ]]; then if [[ $(grep -c 'congrad::evaljgrad: grepcost' penalty.${exp1}-${exp2}.txt) = 0 ]]; then - echo 'The results between the two runs ('${exp1}' and '${exp2}') are reproducible.' + echo 'The results (penalty) between the two runs ('${exp1}' and '${exp2}') are reproducible.' # echo 'since the corresponding penalties and gradients are identical with '$(grep -c 'cost,grad,step' penalty.${exp1}-${exp2}.txt)' lines different.' echo else - echo 'The results between the two runs are nonreproducible,' + echo 'The results (penalty) between the two runs are nonreproducible,' echo 'thus the regression test has Failed on cost for '${exp1}' and '${exp2}' analyses.' # echo 'thus the regression test has failed for '${exp1}' and '${exp2}' analyses with '$(grep -c 'cost,grad,step' penalty.${exp1}-${exp2}.txt)' lines different.' echo failed_test=1 fi else - echo 'The results between the two runs are nonreproducible,' + echo 'The results (penalty) between the two runs are nonreproducible,' echo 'thus the regression test has Failed on cost for '${exp1}' and '${exp2}' analyses.' echo fi @@ -351,6 +347,40 @@ else fi } >> $output fi + + elif [[ `expr substr $exp1 1 4` = "rrfs" ]]; then +{ + fv3_failed_test=0 + if cmp -s fv3_dynvars.${exp1} fv3_dynvars.${exp2} + then + echo 'The fv3_dynvars are reproducible' + else + fv3_failed_test=1 + fi + if cmp -s fv3_sfcdata.${exp1} fv3_sfcdata.${exp2} + then + echo 'The fv3_sfcdata are reproducible' + else + fv3_failed_test=1 + fi + if cmp -s fv3_tracer.${exp1} fv3_tracer.${exp2} + then + echo 'The fv3_tracer are reproducible' + else + fv3_failed_test=1 + fi + if [[ $fv3_failed_test -eq 0 ]] + then + echo 'The results between the two runs ('${exp1}' and '${exp2}') are reproducible' + echo 'since the corresponding results are identical.' + echo + else + echo 'The results between the two runs ('${exp1}' and '${exp2}') are not reproducible' + echo 'Thus, the case has Failed siganl of the regression tests.' + echo + failed_test=1 + fi +} >> $output fi # Next, reproducibility between exp1 and exp3 @@ -359,18 +389,18 @@ fi if [[ $(grep -c 'cost,grad,step' penalty.${exp1}-${exp3}.txt) = 0 ]]; then if [[ $(grep -c 'congrad::evaljgrad: grepcost' penalty.${exp1}-${exp3}.txt) = 0 ]]; then - echo 'The results between the two runs ('${exp1}' and '${exp3}') are reproducible' + echo 'The results (penalty) between the two runs ('${exp1}' and '${exp3}') are reproducible' # echo 'since the corresponding penalties and gradients are identical with '$(grep -c 'cost,grad,step' penalty.${exp1}-${exp3}.txt)' lines different.' echo else - echo 'The results between the two runs are nonreproducible,' + echo 'The results (penalty) between the two runs are nonreproducible,' echo 'thus the regression test has Failed cost for '${exp1}' and '${exp3}' analyses.' # echo 'thus the regression test has failed for '${exp1}' and '${exp3}' analyses with '$(grep -c 'cost,grad,step' penalty.${exp1}-${exp3}.txt)' lines different.' echo failed_test=1 fi else - echo 'The results between the two runs are nonreproducible,' + echo 'The results (penalty) between the two runs are nonreproducible,' echo 'thus the regression test has Failed cost for '${exp1}' and '${exp3}' analyses.' echo fi @@ -450,6 +480,7 @@ elif [[ `expr substr $exp1 1 6` = "global" ]]; then fi } >> $output + elif [[ -f siganl.${exp1} ]]; then { @@ -467,6 +498,7 @@ elif [[ `expr substr $exp1 1 6` = "global" ]]; then fi } >> $output + elif [[ -f siginc.nc.${exp1} ]]; then { @@ -487,6 +519,41 @@ elif [[ `expr substr $exp1 1 6` = "global" ]]; then } >> $output fi + +elif [[ `expr substr $exp1 1 4` = "rrfs" ]]; then +{ + fv3_failed_test=0 + if cmp -s fv3_dynvars.${exp1} fv3_dynvars.${exp3} + then + echo 'The fv3_dynvars are reproducible' + else + fv3_failed_test=1 + fi + if cmp -s fv3_sfcdata.${exp1} fv3_sfcdata.${exp3} + then + echo 'The fv3_sfcdata are reproducible' + else + fv3_failed_test=1 + fi + if cmp -s fv3_tracer.${exp1} fv3_tracer.${exp3} + then + echo 'The fv3_tracer are reproducible' + else + fv3_failed_test=1 + fi + if [[ $fv3_failed_test -eq 0 ]] + then + echo 'The results between the two runs ('${exp1}' and '${exp3}') are reproducible' + echo 'since the corresponding results are identical.' + echo + else + echo 'The results between the two runs ('${exp1}' and '${exp3}') are not reproducible' + echo 'Thus, the case has Failed siganl of the regression tests.' + echo + failed_test=1 + fi +} >> $output + fi # Finally, scalability @@ -509,11 +576,20 @@ mkdir -p $vfydir $ncp $output $vfydir/ +# Final check for any failed tests +count=$(grep -i "fail" $output |wc -l) +if [ $count -gt 0 ]; then + (( failed_test = $failed_test + $count )) +fi + +# Remove job log files is no failures detected cd $scripts -rm -f ${exp1}.out -rm -f ${exp2}.out -rm -f ${exp3}.out -rm -f ${exp2_scale}.out +if [ $count -eq 0 ]; then + rm -f ${exp1}.out + rm -f ${exp2}.out + rm -f ${exp3}.out + rm -f ${exp2_scale}.out +fi if [[ "$clean" = ".true." ]]; then rm -rf $savdir diff --git a/regression/regression_test_enkf.sh b/regression/regression_test_enkf.sh index adaff2f2f..f52a5d451 100755 --- a/regression/regression_test_enkf.sh +++ b/regression/regression_test_enkf.sh @@ -32,17 +32,18 @@ cd $tmpdir # Other required constants for regression testing maxtime=1200 maxmem=${maxmem:-3400000} # set in regression_param +maxmem=$((${memnode:-64}*1024*1024)) -# Copy stdout and sanl files +# Copy stdout and incr files # from $savdir to $tmpdir list="$exp1 $exp2 $exp3" for exp in $list; do $ncp $savdir/$exp/stdout ./stdout.$exp - nmem=20 + nmem=10 imem=1 while [[ $imem -le $nmem ]]; do member="_mem"`printf %03i $imem` - $ncp $savdir/$exp/sanl_${global_enkf_T62_adate}_fhr06$member $tmpdir/sanl$member.$exp + $ncp $savdir/$exp/incr_${global_adate}_fhr06$member $tmpdir/incr$member.$exp (( imem = $imem + 1 )) done done @@ -63,9 +64,6 @@ diff increment.$exp1.txt increment.$exp3.txt > increment.${exp1}-${exp3}.txt exp1_scale=$2 exp2_scale=$4 -#exp1_scale=$global_T62_updat_exp2 -#exp2_scale=$global_T62_contrl_exp2 - # Copy stdout for additional scalability testing list="$exp1_scale $exp2_scale" for exp_scale in $list; do @@ -280,14 +278,17 @@ fi } >> $output else { -nmem=20 +nmem=10 imem=1 while [[ $imem -le $nmem ]]; do member="_mem"`printf %03i $imem` - if ! cmp -s sanl$member.${exp1} sanl$member.${exp2} -then - echo 'sanl'$member'.'${exp1}' sanl'$member'.'${exp2}' are NOT identical' -fi + ncdump incr$member.${exp1} > incr$member.${exp1}.out + ncdump incr$member.${exp2} > incr$member.${exp2}.out + if [ ! diff incr$member.${exp1}.out incr$member.${exp2}.out ]; then + echo 'incr'$member'.'${exp1}' incr'$member'.'${exp2}' are NOT identical' + else + rm -f incr$member.${exp1}.out incr$member.${exp2}.out + fi (( imem = $imem + 1 )) done echo @@ -377,15 +378,18 @@ else else { - nmem=20 + nmem=10 imem=1 while [[ $imem -le $nmem ]]; do member="_mem"`printf %03i $imem` - if ! cmp -s sanl$member.${exp1} sanl$member.${exp3} - then - echo 'sanl'$member'.'${exp1}' sanl'$member'.'${exp3}' are NOT identical' + ncdump incr$member.${exp1} > incr$member.${exp1}.out + ncdump incr$member.${exp3} > incr$member.${exp3}.out + if [ ! diff incr$member.${exp1}.out incr$member.${exp3}.out ]; then + echo 'incr'$member'.'${exp1}' incr'$member'.'${exp3}' are NOT identical' + else + rm -f incr$member.${exp1}.out incr$member.${exp3}.out fi - (( imem = $imem + 1 )) + (( imem = $imem + 1 )) done echo } >> $output @@ -413,11 +417,20 @@ mkdir -p $vfydir $ncp $output $vfydir/ +# Final check for any failed tests +count=$(grep -i "fail" $output |wc -l) +if [ $count -gt 0 ]; then + (( failed_test = $failed_test + $count )) +fi + +# Remove job log files is no failures detected cd $scripts -rm -f ${exp1}.out -rm -f ${exp2}.out -rm -f ${exp3}.out -rm -f ${exp2_scale}.out +if [ $count -eq 0 ]; then + rm -f ${exp1}.out + rm -f ${exp2}.out + rm -f ${exp3}.out + rm -f ${exp2_scale}.out +fi if [[ "$clean" = ".true." ]]; then rm -rf $savdir diff --git a/regression/regression_var.sh b/regression/regression_var.sh index 66cebaf1d..383b85103 100755 --- a/regression/regression_var.sh +++ b/regression/regression_var.sh @@ -17,7 +17,8 @@ if [ "$#" = 7 ] ; then export ush="$gsisrc/ush" export cmaketest="true" export clean="false" - export ptmpName=`echo $builddir | sed -e "s/\//_/g"` + dir_root="${builddir%/*}" + export ptmpName="${dir_root##*/}" else # Name of the branch being tested updat="XXXXXXXX" @@ -28,18 +29,12 @@ else fi # Determine the machine -if [[ -d /dcom && -d /hwrf ]]; then # WCOSS - export machine="WCOSS" -elif [[ -d /glade ]]; then # Cheyenne +if [[ -d /glade ]]; then # Cheyenne export machine="Cheyenne" elif [[ -d /scratch1 ]]; then # Hera export machine="Hera" -elif [[ -d /jetmon ]]; then # Jet +elif [[ -d /mnt/lfs4 || -d /jetmon || -d /mnt/lfs1 ]]; then # Jet export machine="Jet" -elif [[ -d /cm ]]; then # LUNA or SURGE - export machine="WCOSS_C" -elif [[ -d /ioddev_dell ]]; then # venus or mars - export machine="WCOSS_D" elif [[ -d /discover ]]; then # NCCS Discover export machine="Discover" elif [[ -d /sw/gaea ]]; then # Gaea @@ -48,45 +43,12 @@ elif [[ -d /data/prod ]]; then # S4 export machine="S4" elif [[ -d /work ]]; then # Orion export machine="Orion" +elif [[ -d /lfs/h2 ]]; then # wcoss2 + export machine="wcoss2" fi echo "Running Regression Tests on '$machine'"; case $machine in - WCOSS_D) - export noscrub=/gpfs/dell2/emc/modeling/noscrub/$LOGNAME - export group="dev" - export queue="dev" - - export ptmp="/gpfs/dell2/ptmp/$LOGNAME/$ptmpName" - - export fixcrtm="/gpfs/dell2/emc/modeling/noscrub/Michael.Lueken/fix_update" - export casesdir="/gpfs/dell2/emc/modeling/noscrub/Michael.Lueken/CASES" - - export check_resource="yes" - - export accnt="" - ;; - WCOSS) - if [ -d /da/noscrub/$LOGNAME ]; then - export noscrub=/da/noscrub/$LOGNAME - elif [ -d /global/noscrub/$LOGNAME ]; then - export noscrub=/global/noscrub/$LOGNAME - fi - if [[ "$cmaketest" = "false" ]]; then - export basedir="/global/save/$LOGNAME/gsi" - fi - export group="dev" - export queue="dev" - - export ptmp="/ptmpp1/$LOGNAME/$ptmpName" - - export fixcrtm="/da/save/Michael.Lueken/CRTM_REL-2.2.3/crtm_v2.2.3/fix_update" - export casesdir="/da/noscrub/Michael.Lueken/CASES" - - export check_resource="yes" - - export accnt="" - ;; Cheyenne) export queue="economy" export noscrub="/glade/scratch/$LOGNAME" @@ -96,84 +58,97 @@ case $machine in fi export ptmp="/glade/scratch/$LOGNAME/$ptmpName" - export fixcrtm="/glade/p/ral/jntp/tools/crtm/2.2.3/fix_update" export casesdir="/glade/p/ral/jntp/tools/CASES" export check_resource="no" export accnt="p48503002" ;; + wcoss2) + export local_or_default="${local_or_default:-/lfs/h2/emc/da/noscrub/$LOGNAME}" + if [ -d $local_or_default ]; then + export noscrub="$local_or_default/noscrub" + elif [ -d /lfs/h2/emc/global/noscrub/$LOGNAME ]; then + export noscrub="/lfs/h2/emc/global/noscrub/$LOGNAME/noscrub" + fi + + export queue="${queue:-dev}" + export group="${group:-global}" + if [[ "$cmaketest" = "false" ]]; then + export basedir="/lfs/h2/emc/da/noscrub/$LOGNAME/gsi" + fi + export ptmp="${ptmp:-/lfs/h2/emc/ptmp/$LOGNAME/$ptmpName}" + + export casesdir="/lfs/h2/emc/da/noscrub/russ.treadon/CASES/regtest" + + export check_resource="no" + export accnt="${accnt:-GFS-DEV}" + ;; + Orion) + export local_or_default="${local_or_default:-/work/noaa/da/$LOGNAME}" + if [ -d $local_or_default ]; then + export noscrub="$local_or_default/noscrub" + elif [ -d /work/noaa/global/$LOGNAME ]; then + export noscrub="/work/noaa/global/$LOGNAME/noscrub" + fi + + export queue="${queue:-batch}" + export group="${group:-global}" + if [[ "$cmaketest" = "false" ]]; then + export basedir="/work/noaa/da/$LOGNAME/gsi" + fi + export ptmp="${ptmp:-/work/noaa/stmp/$LOGNAME/$ptmpName}" + + export casesdir="/work/noaa/da/rtreadon/CASES/regtest" + + export check_resource="no" + export accnt="${accnt:-da-cpu}" + ;; Hera) - if [ -d /scratch1/NCEPDEV/da/$LOGNAME ]; then - export noscrub="/scratch1/NCEPDEV/da/$LOGNAME/noscrub" + + export local_or_default="${local_or_default:-/scratch1/NCEPDEV/da/$LOGNAME}" + if [ -d $local_or_default ]; then + export noscrub="$local_or_default/noscrub" elif [ -d /scratch1/NCEPDEV/global/$LOGNAME ]; then export noscrub="/scratch1/NCEPDEV/global/$LOGNAME/noscrub" elif [ -d /scratch2/BMC/gsienkf/$LOGNAME ]; then export noscrub="/scratch2/BMC/gsienkf/$LOGNAME" fi - export group="global" - export queue="batch" + export group="${group:-global}" + export queue="${queue:-debug}" if [[ "$cmaketest" = "false" ]]; then export basedir="/scratch1/NCEPDEV/da/$LOGNAME/git/gsi" fi - export ptmp="/scratch1/NCEPDEV/stmp2/$LOGNAME/$ptmpName" + export ptmp="${ptmp:-/scratch1/NCEPDEV/stmp2/$LOGNAME/$ptmpName}" - export fixcrtm="/scratch1/NCEPDEV/da/Michael.Lueken/CRTM_REL-2.2.3/crtm_v2.2.3/fix_update" - export casesdir="/scratch1/NCEPDEV/da/Michael.Lueken/noscrub/CASES" + export casesdir="/scratch1/NCEPDEV/da/Russ.Treadon/CASES/regtest" export check_resource="no" - - export accnt="da-cpu" + export accnt="${accnt:-da-cpu}" # On Hera, there are no scrubbers to remove old contents from stmp* directories. # After completion of regression tests, will remove the regression test subdirecories - export clean=".true." + export clean=".false." ;; Jet) export noscrub=/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/noscrub export ptmp=/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/ptmp - export fixcrtm="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CRTM_REL-2.2.3/crtm_v2.2.3/fix_update" - export casesdir="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CASES" + export casesdir="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CASES/regtest" export check_resource="no" export accnt="nesdis-rdo2" export group="global" export queue="batch" if [[ "$cmaketest" = "false" ]]; then - export basedir="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/gsi" + export basedir="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/save/git/gsi" fi - export ptmp="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/ptmp/$ptmpName" - # On Jet, there are no scrubbers to remove old contents from stmp* directories. # After completion of regression tests, will remove the regression test subdirecories export clean=".true." ;; - WCOSS_C) - if [ -d /gpfs/hps3/emc/global/noscrub/$LOGNAME ]; then - export noscrub="/gpfs/hps3/emc/global/noscrub/$LOGNAME" - elif [ -d /gpfs/hps3/emc/da/noscrub/$LOGNAME ]; then - export noscrub="/gpfs/hps3/emc/da/noscrub/$LOGNAME" - elif [ -d /gpfs/hps3/emc/hwrf/noscrub/$LOGNAME ]; then - export noscrub="/gpfs/hps3/emc/hwrf/noscrub/$LOGNAME" - fi - if [[ "$cmaketest" = "false" ]]; then - export basedir="/gpfs/hps3/emc/global/noscrub/$LOGNAME/svn/gsi" - fi - export group="dev" - export queue="dev" - - export ptmp="/gpfs/hps/ptmp/$LOGNAME/$ptmpName" - - export fixcrtm="/gpfs/hps3/emc/da/noscrub/Michael.Lueken/CRTM_REL-2.2.3/fix_update" - export casesdir="/gpfs/hps3/emc/da/noscrub/Michael.Lueken/CASES" - - export check_resource="no" - - export accnt="" - ;; Discover) if [[ "$cmaketest" = "false" ]]; then echo "Regression tests on Discover need to be run via ctest" @@ -182,7 +157,6 @@ case $machine in export ptmp=$basedir export ptmp=$basedir export noscrub=$basedir - export fixcrtm="/discover/nobackup/projects/gmao/share/gmao_ops/fvInput_4dvar/gsi/etc/fix_ncep20170329/REL-2.2.3-r60152_local-rev_1/CRTM_Coeffs/$endianness" export casesdir="/discover/nobackup/projects/gmao/obsdev/wrmccart/NCEP_regression/CASES" export check_resource="no" export accnt="g0613" @@ -208,65 +182,23 @@ export savdir="$ptmp" export JCAP="62" # Case Study analysis dates -export global_T62_adate="2016120300" -export global_4dvar_T62_adate="2014080400" -export global_hybrid_T126_adate="2014092912" -export global_4denvar_T126_adate="2019041500" -export global_fv3_4denvar_T126_adate="2018110500" -export global_fv3_4denvar_C192_adate="2019061006" -export global_enkf_T62_adate="2014092912" -export global_lanczos_T62_adate="2014080400" -export global_nemsio_T62_adate="2013011400" -export nmmb_nems_adate="2015061000" -export arw_binary_adate="2010072412" -export arw_netcdf_adate="2008051112" -export nmm_binary_adate="2010021600" -export nmm_netcdf_adate="2007122000" +export global_adate="2022110900" export rtma_adate="2020022420" export hwrf_nmm_adate="2012102812" export fv3_netcdf_adate="2017030100" -export global_C96_fv3aero_adate="2019062200" -export global_C96_fv3aerorad_adate="2019062200" +export rrfs_3denvar_glbens_adate="2021072518" # Paths for canned case data. -export global_T62_obs="$casesdir/global/sigmap/$global_T62_adate" -export global_T62_ges="$casesdir/global/sigmap/$global_T62_adate" -export global_4dvar_T62_obs="$casesdir/global/sigmap/$global_4dvar_T62_adate" -export global_4dvar_T62_ges="$casesdir/global/sigmap/$global_4dvar_T62_adate" -export global_hybrid_T126_datobs="$casesdir/global/sigmap/$global_hybrid_T126_adate/obs" -export global_4denvar_T126_datges="$casesdir/global/sigmap/$global_4denvar_T126_adate" -export global_4denvar_T126_datobs="$casesdir/global/sigmap/$global_4denvar_T126_adate" -export global_fv3_4denvar_T126_datges="$casesdir/global/fv3/$global_fv3_4denvar_T126_adate" -export global_fv3_4denvar_T126_datobs=$global_fv3_4denvar_T126_datges -export global_fv3_4denvar_C192_datges="$casesdir/global/fv3/$global_fv3_4denvar_C192_adate" -export global_fv3_4denvar_C192_datobs=$global_fv3_4denvar_C192_datges -export global_hybrid_T126_datges="$casesdir/global/sigmap/$global_hybrid_T126_adate/ges" -export global_enkf_T62_datobs="$casesdir/global/sigmap/$global_enkf_T62_adate/new_obs" -export global_enkf_T62_datges="$casesdir/global/sigmap/$global_enkf_T62_adate/ges" -export global_lanczos_T62_obs="$casesdir/global/sigmap/$global_lanczos_T62_adate" -export global_lanczos_T62_ges="$casesdir/global/sigmap/$global_lanczos_T62_adate" -export global_nemsio_T62_obs="$casesdir/global/sigmap/$global_nemsio_T62_adate" -export global_nemsio_T62_ges="$casesdir/global/sigmap_nemsio/$global_nemsio_T62_adate" -export nmmb_nems_4denvar_obs="$casesdir/regional/nmmb_nems/$nmmb_nems_adate" -export nmmb_nems_4denvar_ges="$casesdir/regional/nmmb_nems/$nmmb_nems_adate" -export arw_binary_obs="$casesdir/regional/arw_binary/$arw_binary_adate" -export arw_binary_ges="$casesdir/regional/arw_binary/$arw_binary_adate" -export arw_netcdf_obs="$casesdir/regional/arw_netcdf/$arw_netcdf_adate" -export arw_netcdf_ges="$casesdir/regional/arw_netcdf/$arw_netcdf_adate" -export nmm_binary_obs="$casesdir/regional/ndas_binary/$nmm_binary_adate" -export nmm_binary_ges="$casesdir/regional/ndas_binary/$nmm_binary_adate" -export nmm_netcdf_obs="$casesdir/regional/ndas_binary/$nmm_netcdf_adate" -export nmm_netcdf_ges="$casesdir/regional/nmm_netcdf/$nmm_netcdf_adate" +export global_data="$casesdir/gfs/prod" export rtma_obs="$casesdir/regional/rtma_binary/$rtma_adate" export rtma_ges="$casesdir/regional/rtma_binary/$rtma_adate" export hwrf_nmm_obs="$casesdir/regional/hwrf_nmm/$hwrf_nmm_adate" export hwrf_nmm_ges="$casesdir/regional/hwrf_nmm/$hwrf_nmm_adate" export fv3_netcdf_obs="$casesdir/regional/fv3_netcdf/$fv3_netcdf_adate" export fv3_netcdf_ges="$casesdir/regional/fv3_netcdf/$fv3_netcdf_adate" -export global_C96_fv3aero_obs="$casesdir/global/fv3/$global_C96_fv3aero_adate" -export global_C96_fv3aero_ges="$casesdir/global/fv3/$global_C96_fv3aero_adate" -export global_C96_fv3aerorad_obs="$casesdir/global/fv3/$global_C96_fv3aerorad_adate" -export global_C96_fv3aerorad_ges="$casesdir/global/fv3/$global_C96_fv3aerorad_adate" +export rrfs_3denvar_glbens_obs="$casesdir/regional/rrfs/$rrfs_3denvar_glbens_adate/obs" +export rrfs_3denvar_glbens_ges="$casesdir/regional/rrfs/$rrfs_3denvar_glbens_adate/ges" +export rrfs_3denvar_glbens_ens="$casesdir/regional/rrfs/$rrfs_3denvar_glbens_adate/ens" # Define type of GPSRO data to be assimilated (refractivity or bending angle) export gps_dtype="gps_bnd" @@ -277,7 +209,7 @@ export regression_vfydir="$noscrub/regression" # Define debug variable - If you want to run the debug tests, set this variable to .true. Default is .false. export debug=".false." -# Define parameters for global_T62_3d4dvar and global_T62_4dvar +# Define parameters for global_3dvar, global_4dvar, global_4denvar export minimization="lanczos" # If "lanczos", use sqrtb lanczos minimization algorithm. Otherwise use "pcgsoi". export nhr_obsbin="6" # Time window for observation binning. Use "6" for 3d4dvar test. Otherwise use "1" diff --git a/regression/rrfs_3denvar_glbens.sh b/regression/rrfs_3denvar_glbens.sh new file mode 100755 index 000000000..af5da5117 --- /dev/null +++ b/regression/rrfs_3denvar_glbens.sh @@ -0,0 +1,291 @@ + +set -x + +# Set variables used in script +# CLEAN up $tmpdir when finished (YES=remove, NO=leave alone) +# ncp is cp replacement, currently keep as /bin/cp + +UNCOMPRESS=gunzip +CLEAN=NO +ncp=/bin/cp + +# +# Set experiment name +# +exp=$jobname + +#----------------------------------------------------------------------- +# +# Extract from ADATE the starting year, month, day, and hour of the +# forecast. These are needed below for various operations. +# +#----------------------------------------------------------------------- +# +adate=${rrfs_3denvar_glbens_adate} +YYYYMMDDHH=$(date +%Y%m%d%H -d "${adate:0:8} ${adate:8:2}") +JJJ=$(date +%j -d "${adate:0:8} ${adate:8:2}") + +YYYY=${YYYYMMDDHH:0:4} +MM=${YYYYMMDDHH:4:2} +DD=${YYYYMMDDHH:6:2} +HH=${YYYYMMDDHH:8:2} +YYYYMMDD=${YYYYMMDDHH:0:8} +# +#MESO_USELIST_FN=$(date +%Y-%m-%d -d "${START_DATE} -1 day")_meso_uselist.txt +#AIR_REJECT_FN=$(date +%Y%m%d -d "${START_DATE} -1 day")_rejects.txt + +# +#----------------------------------------------------------------------- +# +# go to working directory and save directory. +# define fix and background path +# +#----------------------------------------------------------------------- +# Set runtime and save directories +tmpdir=$tmpdir/tmpreg_rrfs_3denvar_glbens/${exp} +savdir=$savdir/outreg_rrfs_3denvar_glbens/${exp} + +# Set up $tmpdir +rm -rf $tmpdir +mkdir -p $tmpdir +chgrp rstprod $tmpdir +chmod 750 $tmpdir +cd $tmpdir + +bkpath=${rrfs_3denvar_glbens_ges} +# decide background type +if [ -r "${bkpath}/fv3_coupler.res" ]; then + BKTYPE=0 # warm start +else + BKTYPE=1 # cold start +fi + +fixcrtm=${fixcrtm:-$CRTM_FIX} + +#--------------------------------------------------------------------- +# +# decide regional_ensemble_option: global ensemble (1) or FV3LAM ensemble (5) +# +#--------------------------------------------------------------------- +# +echo "regional_ensemble_option is ",${regional_ensemble_option:-1} + +echo "$VERBOSE" "fixgsi is $fixgsi" +echo "$VERBOSE" "fixgriddir is $fixgriddir" +echo "$VERBOSE" "default bkpath is $bkpath" +echo "$VERBOSE" "background type is is $BKTYPE" + +ifhyb=.false. +if [[ ${regional_ensemble_option:-1} -eq 1 ]]; then #using GDAS + #----------------------------------------------------------------------- + # Make a list of the latest GFS EnKF ensemble + #----------------------------------------------------------------------- + ls ${rrfs_3denvar_glbens_ens}/*gdas.t??z.atmf009.mem0??.nc >> filelist03 + + nummem=$(more filelist03 | wc -l) + nummem=$((nummem - 3 )) + if [[ ${nummem} -ge 10 ]]; then + echo "$VERBOSE" "Do hybrid with ${memname}" + ifhyb=.true. + echo "$VERBOSE" " Cycle ${YYYYMMDDHH}: GSI hybrid uses ${memname} with n_ens=${nummem}" + else + echo "$VERBOSE" " Cycle ${YYYYMMDDHH}: GSI does pure 3DVAR." + echo "$VERBOSE" " Hybrid needs at least ${HYBENSMEM_NMIN} ${memname} ensembles, only ${nummem} available" + fi + +fi + +#----------------------------------------------------------------------- +# +# link or copy background and grib configuration files +# +# Using ncks to add phis (terrain) into cold start input background. +# it is better to change GSI to use the terrain from fix file. +# Adding radar_tten array to fv3_tracer. Should remove this after add this array in +# radar_tten converting code. +#----------------------------------------------------------------------- + +ln -snf ${bkpath}/fv3_akbk fv3_akbk +ln -snf ${bkpath}/fv3_grid_spec fv3_grid_spec + +if [ ${BKTYPE} -eq 1 ]; then # cold start uses background from INPUT + ln -snf ${bkpath}/phis.nc phis.nc + ncks -A -v phis phis.nc ${bkpath}/gfs_data.tile7.halo0.nc + + ln_vrfy -snf ${bkpath}/sfc_data.tile7.halo0.nc fv3_sfcdata + ln_vrfy -snf ${bkpath}/gfs_data.tile7.halo0.nc fv3_dynvars + ln_vrfy -s fv3_dynvars fv3_tracer + + fv3lam_bg_type=1 +else # cycle uses background from restart + timestring=${YYYYMMDD}.${HH}0000 + cp ${bkpath}/${timestring}.fv_core.res.tile1.nc fv3_dynvars + cp ${bkpath}/${timestring}.fv_tracer.res.tile1.nc fv3_tracer + cp ${bkpath}/${timestring}.sfc_data.nc fv3_sfcdata + cp ${bkpath}/${timestring}.phy_data.nc fv3_phyvars + fv3lam_bg_type=0 +fi + +# update times in coupler.res to current cycle time +cp ${bkpath}/fv3_coupler.res coupler.res +sed -i "s/yyyy/${YYYY}/" coupler.res +sed -i "s/mm/${MM}/" coupler.res +sed -i "s/dd/${DD}/" coupler.res +sed -i "s/hh/${HH}/" coupler.res + + +# +#----------------------------------------------------------------------- +# +# link observation files +# copy observation files to working directory +# +#----------------------------------------------------------------------- + obs_source=rap + obsfileprefix=${YYYYMMDDHH}.${obs_source} + obspath_tmp=${rrfs_3denvar_glbens_obs} + + obs_files_source[0]=${obspath_tmp}/${obsfileprefix}.t${HH}${SUBH}z.prepbufr.tm00 + obs_files_target[0]=prepbufr + + obs_number=${#obs_files_source[@]} + obs_files_source[${obs_number}]=${obspath_tmp}/${obsfileprefix}.t${HH}${SUBH}z.satwnd.tm00.bufr_d + obs_files_target[${obs_number}]=satwndbufr + + obs_number=${#obs_files_source[@]} + obs_files_source[${obs_number}]=${obspath_tmp}/${obsfileprefix}.t${HH}${SUBH}z.nexrad.tm00.bufr_d + obs_files_target[${obs_number}]=l2rwbufr + + +obs_number=${#obs_files_source[@]} +for (( i=0; i<${obs_number}; i++ )); +do + obs_file=${obs_files_source[$i]} + obs_file_t=${obs_files_target[$i]} + if [ -r "${obs_file}" ]; then + ln -s "${obs_file}" "${obs_file_t}" + else + echo "$VERBOSE" "Warning: ${obs_file} does not exist!" + fi +done + +# +#----------------------------------------------------------------------- +# +# Create links to fix files in the FIXgsi directory. +# +#----------------------------------------------------------------------- + +ANAVINFO=${fixgsi}/anavinfo.rrfs +CONVINFO=${fixgsi}/convinfo.rrfs +HYBENSINFO=${fixgsi}/hybens_info.rrfs +OBERROR=${fixgsi}/errtable.rrfs +BERROR=${fixgsi}/rrfs_glb_berror.l127y770.f77 + +SATINFO=${fixgsi}/global_satinfo.txt +OZINFO=${fixgsi}/global_ozinfo.txt +PCPINFO=${fixgsi}/global_pcpinfo.txt +ATMS_BEAMWIDTH=${fixgsi}/atms_beamwidth.txt + +# Fixed fields +cp ${ANAVINFO} anavinfo +cp ${BERROR} berror_stats +cp $SATINFO satinfo +cp $CONVINFO convinfo +cp $OZINFO ozinfo +cp $PCPINFO pcpinfo +cp $OBERROR errtable +cp $ATMS_BEAMWIDTH atms_beamwidth.txt +cp ${HYBENSINFO} hybens_info + +cp ${bkpath}/gsd_sfcobs_provider.txt gsd_sfcobs_provider.txt +cp ${bkpath}/current_bad_aircraft current_bad_aircraft +cp ${bpath}/gsd_sfcobs_uselist.txt gsd_sfcobs_uselist.txt + +#----------------------------------------------------------------------- +# +# CRTM Spectral and Transmittance coefficients +# +#----------------------------------------------------------------------- +CRTMFIX=${fixcrtm} +emiscoef_IRwater=${CRTMFIX}/Nalli.IRwater.EmisCoeff.bin +emiscoef_IRice=${CRTMFIX}/NPOESS.IRice.EmisCoeff.bin +emiscoef_IRland=${CRTMFIX}/NPOESS.IRland.EmisCoeff.bin +emiscoef_IRsnow=${CRTMFIX}/NPOESS.IRsnow.EmisCoeff.bin +emiscoef_VISice=${CRTMFIX}/NPOESS.VISice.EmisCoeff.bin +emiscoef_VISland=${CRTMFIX}/NPOESS.VISland.EmisCoeff.bin +emiscoef_VISsnow=${CRTMFIX}/NPOESS.VISsnow.EmisCoeff.bin +emiscoef_VISwater=${CRTMFIX}/NPOESS.VISwater.EmisCoeff.bin +emiscoef_MWwater=${CRTMFIX}/FASTEM6.MWwater.EmisCoeff.bin +aercoef=${CRTMFIX}/AerosolCoeff.bin +cldcoef=${CRTMFIX}/CloudCoeff.bin + +ln -s ${emiscoef_IRwater} Nalli.IRwater.EmisCoeff.bin +ln -s $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin +ln -s $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin +ln -s $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin +ln -s $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin +ln -s $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin +ln -s $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin +ln -s $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin +ln -s $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin +ln -s $aercoef ./AerosolCoeff.bin +ln -s $cldcoef ./CloudCoeff.bin + + +# Copy CRTM coefficient files based on entries in satinfo file +for file in $(awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq) ;do + ln -s ${CRTMFIX}/${file}.SpcCoeff.bin ./ + ln -s ${CRTMFIX}/${file}.TauCoeff.bin ./ +done + +#----------------------------------------------------------------------- +# +# Build the GSI namelist on-the-fly +# +#----------------------------------------------------------------------- +# + +. $scripts/regression_nl_update.sh + +SETUP="$SETUP_update" +GRIDOPTS="$GRIDOPTS_update" +BKGVERR="$BKGVERR_update" +ANBKGERR="$ANBKERR_update" +JCOPTS="$JCOPTS_update" +STRONGOPTS="$STRONGOPTS_update" +OBSQC="$OBSQC_update" +OBSINPUT="$OBSINPUT_update" +SUPERRAD="$SUPERRAD_update" +HYBRID_ENSEMBLE='ensemble_path="",' +SINGLEOB="$SINGLEOB_update" + +if [ "$debug" = ".false." ]; then + . $scripts/regression_namelists.sh rrfs_3denvar_glbens +else + . $scripts/regression_namelists_db.sh rrfs_3denvar_glbens +fi + +cat << EOF > gsiparm.anl + +$gsi_namelist + +EOF + +# Copy executable and fixed files to $tmpdir +if [[ $exp == *"updat"* ]]; then + $ncp $gsiexec_updat ./gsi.x +elif [[ $exp == *"contrl"* ]]; then + $ncp $gsiexec_contrl ./gsi.x +fi + +#cp $fv3_netcdf_ges/nam.t06z.satbias_pc.tm04 ./satbias_pc +#cp $fv3_netcdf_ges/nam.t06z.satbias.tm04 ./satbias_in +#cp $fv3_netcdf_ges/nam.t06z.radstat.tm04 ./radstat.gdas + +# Run GSI +cd $tmpdir +echo "run gsi now" +eval "$APRUN $tmpdir/gsi.x > stdout 2>&1" +rc=$? +exit $rc diff --git a/ush/build.sh b/ush/build.sh index 1e85a7c6c..6abbada0d 100755 --- a/ush/build.sh +++ b/ush/build.sh @@ -27,14 +27,8 @@ module use $DIR_ROOT/modulefiles module load gsi_$MACHINE_ID module list -# Set CONTROLPATH variables for Regression testing on supported MACHINE_ID -if [[ $MACHINE_ID = wcoss ]] ; then - CONTROLPATH="/da/save/Michael.Lueken/svn1/build" -elif [[ $MACHINE_ID = wcoss_dell_p3 ]] ; then - CONTROLPATH="/gpfs/dell2/emc/modeling/noscrub/Michael.Lueken/svn1/install/bin" -elif [[ $MACHINE_ID = hera.intel ]] ; then - CONTROLPATH="/scratch1/NCEPDEV/da/Michael.Lueken/svn1/install/bin" -fi +# Set CONTROLPATH variable to user develop installation +CONTROLPATH="$DIR_ROOT/../develop/install/bin" # Collect BUILD Options CMAKE_OPTS+=" -DCMAKE_BUILD_TYPE=$BUILD_TYPE" diff --git a/ush/detect_machine.sh b/ush/detect_machine.sh index 0eae636cb..ecd1ad536 100755 --- a/ush/detect_machine.sh +++ b/ush/detect_machine.sh @@ -2,16 +2,6 @@ case $(hostname -f) in - llogin[1-3]) MACHINE_ID=wcoss_cray ;; ### luna - slogin[1-3]) MACHINE_ID=wcoss_cray ;; ### surge - - m7[12]a[1-3].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars - v7[12]a[1-3].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus - m109a[1-4].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars3.5 - m110a[1-4].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars3.5 - v109a[1-4].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus3.5 - v110a[1-4].ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus3.5 - adecflow0[12].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn alogin0[12].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn clogin0[1-9].cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus01-9 diff --git a/ush/module-setup.sh b/ush/module-setup.sh index 67821de82..469fd4a3c 100755 --- a/ush/module-setup.sh +++ b/ush/module-setup.sh @@ -29,30 +29,6 @@ elif [[ $MACHINE_ID = s4* ]] ; then fi module purge -elif [[ $MACHINE_ID = wcoss_cray ]] ; then - # We are on NOAA Luna or Surge - if ( ! eval module help > /dev/null 2>&1 ) ; then - source /opt/modules/default/init/bash - fi - module purge - # Workaround until module issues are fixed: - unset _LMFILES_ - unset LOADEDMODULES - module use /opt/modulefiles - module use /opt/cray/ari/modulefiles - module use /opt/cray/craype/default/alt-modulefiles - module use /opt/cray/alt-modulefiles - module use /gpfs/hps/nco/ops/nwprod/modulefiles - module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles - module use /usrx/local/prod/modulefiles - -elif [[ $MACHINE_ID = wcoss_dell_p3 ]] ; then - # We are on NOAA Mars or Venus - if ( ! eval module help > /dev/null 2>&1 ) ; then - source /usrx/local/prod/lmod/lmod/init/bash - fi - module purge - elif [[ $MACHINE_ID = wcoss2 ]]; then # We are on WCOSS2 module reset diff --git a/ush/sub_orion b/ush/sub_orion new file mode 100755 index 000000000..065e7c8ab --- /dev/null +++ b/ush/sub_orion @@ -0,0 +1,168 @@ +#!/bin/sh --login +set -x +usage="\ +Usage: $0 [options] executable [args] + where the options are: + -a account account (default: none) + -b binding run smt binding or not (default:NO) + -d dirin initial directory (default: cwd) + -e envars copy comma-separated environment variables + -g group group name + -i append standard input to command file + -j jobname specify jobname (default: executable basename) + -m machine machine on which to run (default: current) + -n write command file to stdout rather than submitting it + -o output specify output file (default: jobname.out) + -p procs[/nodes[/ppreq] + number of MPI tasks and optional nodes or Bblocking and + ppreq option (N or S) (defaults: serial, Bunlimited, S) + -q queue[/qpreq] queue name and optional requirement, e.g. dev/P + (defaults: 1 if serial or dev if parallel and none) + (queue 3 or 4 is dev or prod with twice tasks over ip) + (options: P=parallel, B=bigmem, b=batch) + -r rmem[/rcpu] resources memory and cpus/task (default: '1024 mb', 1) + -t timew wall time limit in [[hh:]mm:]ss format (default: 900) + -u userid userid to run under (default: self) + -v verbose mode + -w when when to run, in yyyymmddhh[mm], +hh[mm], thh[mm], or + Thh[mm] (full, incremental, today or tomorrow) format + (default: now) +Function: This command submits a job to the batch queue." +subcmd="$*" +stdin=NO +nosub=NO +account="" +binding="NO" +dirin="" +envars="" +group="" +jobname="" +machine="" +output="" +procs=0 +nodes="" +ppreq="" +queue="" +qpreq="" +rmem="1024" +rcpu="1" +timew="900" +userid="" +verbose=NO +when="" +while getopts a:b:d:e:g:ij:m:no:p:q:r:t:u:vw: opt;do + case $opt in + a) account="$OPTARG";; + b) binding="$OPTARG";; + d) dirin="$OPTARG";; + e) envars="$OPTARG";; + g) group="$OPTARG";; + i) stdin=YES;; + j) jobname=$OPTARG;; + m) machine="$OPTARG";; + n) nosub=YES;; + o) output=$OPTARG;; + p) procs=$(echo $OPTARG/|cut -d/ -f1);nodes=$(echo $OPTARG/|cut -d/ -f2);ppreq=$(echo $OPTARG/|cut -d/ -f3);; + q) queue=$(echo $OPTARG/|cut -d/ -f1);qpreq=$(echo $OPTARG/|cut -d/ -f2);; + r) rmem=$(echo $OPTARG/|cut -d/ -f1);rcpu=$(echo $OPTARG/|cut -d/ -f2);; + t) timew=$OPTARG;; + u) userid=$OPTARG;; + v) verbose=YES;; + w) when=$OPTARG;; + \?) echo $0: invalid option >&2;echo "$usage" >&2;exit 1;; + esac +done +shift $(($OPTIND-1)) +if [[ $# -eq 0 ]];then + echo $0: missing executable name >&2;echo "$usage" >&2;exit 1 +fi +exec=$1 +if [[ ! -s $exec ]]&&which $exec >/dev/null 2>&1;then + exec=$(which $exec) +fi +shift +args="$*" +bn=$(basename $exec) +export jobname=${jobname:-$bn} +output=${output:-$jobname.out} +myuser=$LOGNAME +myhost=$(hostname) + +DATA=${ptmp:-/work/noaa/da/stmp/$LOGNAME/tmp} +mkdir -p $DATA + +#partition=${partition:-c1ms} +queue=${queue:-batch} +timew=${timew:-01:20:00} +task_node=${task_node:-$procs} +size=$((nodes*task_node)) +envars=$envars +threads=${rcpu:-1} + +export TZ=GMT +cfile=$DATA/sub$$ +> $cfile +#echo "#PBS -S /bin/sh" >> $cfile +echo "#!/bin/sh --login" >> $cfile +echo "" >> $cfile +echo "#SBATCH --output=$output" >> $cfile +echo "#SBATCH --job-name=$jobname" >> $cfile +echo "#SBATCH --qos=$queue" >> $cfile +echo "#SBATCH --time=$timew" >> $cfile +echo "#SBATCH --nodes=$nodes --ntasks-per-node=$procs --cpus-per-task=$threads" >> $cfile +echo "#SBATCH --account=$accnt" >> $cfile + +echo "" >>$cfile +echo "export ntasks=$(( $nodes * $procs ))" >> $cfile +echo "export ppn=$procs" >> $cfile +echo "export threads=$threads" >> $cfile +echo "export OMP_NUM_THREADS=$threads" >> $cfile +##echo "export OMP_STACKSIZE=2048M" >> $cfile +echo "ulimit -s unlimited" >> $cfile + +echo "" >>$cfile +echo ". "$(awk '{ print $1, $2, $3, $4, $5, $6, $7, $8, $9 }' $regdir/regression_var.out) >>$cfile +echo "" >>$cfile + +echo ". /apps/lmod/lmod/init/sh" >> $cfile +echo "module purge" >> $cfile +echo "module use $gsisrc/modulefiles" >> $cfile +echo "module load gsi_orion" >> $cfile +echo "module list" >> $cfile +echo "" >> $cfile +cat $exec >> $cfile + +if [[ $nosub = YES ]];then + cat $cfile + exit +elif [[ $verbose = YES ]];then + set -x + cat $cfile +fi + + +if [[ $stdin = YES ]];then + cat +fi >>$cfile +if [[ $nosub = YES ]];then + cat $cfile + exit +elif [[ $verbose = YES ]];then + set -x + cat $cfile +fi +sbatch=${sbatch:-sbatch} + +ofile=$DATA/subout$$ +>$ofile +chmod 777 $ofile +$sbatch --export=ALL $cfile >$ofile +rc=$? +cat $ofile +if [[ -w $SUBLOG ]];then + jobn=$(grep -i submitted $ofile|head -n1|cut -d\" -f2) + date -u +"%Y%m%d%H%M%S : $subcmd : $jobn" >>$SUBLOG +fi +rm $cfile $ofile +[[ $MKDATA = YES ]] && rmdir $DATA +exit $rc diff --git a/ush/sub_wcoss b/ush/sub_wcoss deleted file mode 100755 index 3fa4876c6..000000000 --- a/ush/sub_wcoss +++ /dev/null @@ -1,343 +0,0 @@ -#!/bin/ksh -set -x -# -# May 28, 2013 - Shrinivas Moorthi :now updated for lsf9.1.1 - should handle coupled case also -# -usage="\ -Usage: $0 [options] executable [args] - where the options are: - -a account account (default: none) - -b binding run smt binding or not (default:NO) - -d dirin initial directory (default: cwd) - -e envars copy comma-separated environment variables - -g group group name - -i append standard input to command file - -j jobname specify jobname (default: executable basename) -# -m machine machine on which to run (default: current) - -m mpiver mpi version (poe or intelmpi) (default: poe) - -n write command file to stdout rather than submitting it - -o output specify output file (default: jobname.out) - -p procs[/nodes[/ppreq] - number of MPI tasks and optional nodes or Bblocking and - ppreq option (N or S) (defaults: serial, Bunlimited, S) - -q queue[/qpreq] queue name and optional requirement, e.g. dev/P - (defaults: 1 if serial or dev if parallel and none) - (queue 3 or 4 is dev or prod with twice tasks over ip) - (options: P=parallel, B=bigmem, b=batch) - -r rmem[/rcpu[/pe_node] resources memory and cpus/task and cores per node (default: '1024 mb', 1, and 16) - -t timew wall time limit in [[hh:]mm:]ss format (default: 900) - -u userid userid to run under (default: self) - -v verbose mode - -w when when to run, in yyyymmddhh[mm], +hh[mm], thh[mm], or - Thh[mm] (full, incremental, today or tomorrow) format - (default: now) - - You can also export variables \"TASK_GEOMETRY\" (default:-\"NONE\") and - \"INHERIT_ENV\" (default:-\"YES\") - Set this variable to \"NO\" and - export it if you do not want the next job to inherit current job - environment. - - Other environmental variables which can be exported from outside are: - - \"KMP_STACKSIZE\" (default:-\"1024m\") - \"MP_EUIDEVELOP\" (default:-\"NULL\") - \"F_UFMTENDIAN\" (default:-\"NULL\") - \"MPICH_ALLTOALL_THROTTLE\" (default:-\"NULL\") - \"MP_SINGLE_THREAD\" (default:-\"NULL\") - \"MP_EAGER_LIMIT\" (default:-\"NULL\") - \"MP_USE_BULK_XFER\" (default:-\"NULL\") - \"MP_COLLECTIVE_OFFLOAD\" (default:-\"NULL\") - \"MP_SHARED_MEMORY\" (default:-\"NULL\") - \"MP_MPILIB\" (default:-\"NULL\") - \"MP_LABELIO\" (default:-\"NULL\") - \"MP_STDOUTMODE\" (default:-\"NULL\") - \"DATA\" (default:-\"/stmpp1/$LOGNAME/sub\" - - deleted at the end if created) - -Function: This command submits a job to the batch queue." -subcmd="$*" -stdin=NO -nosub=NO -account="" -binding="NO" -dirin="" -envars="" -group="" -jobname="" -machine="" -mpiver="" -output="" -procs=0 -nodes="" -ppreq="" -queue="" -qpreq="" -rmem="1024" -rcpu="1" -pe_node="16" -timew="900" -userid="" -verbose=NO -when="" -while getopts a:b:d:e:g:ij:m:no:p:q:r:t:u:vw: opt;do - case $opt in - a) account="$OPTARG";; - b) binding="$OPTARG";; - d) dirin="$OPTARG";; - e) envars="$OPTARG";; - g) group="$OPTARG";; - i) stdin=YES;; - j) jobname=$OPTARG;; -# m) machine="$OPTARG";; - m) mpiver="$OPTARG";; - n) nosub=YES;; - o) output=$OPTARG;; - p) procs=$(echo $OPTARG/|cut -d/ -f1);nodes=$(echo $OPTARG/|cut -d/ -f2);ppreq=$(echo $OPTARG/|cut -d/ -f3);; - q) queue=$(echo $OPTARG/|cut -d/ -f1);qpreq=$(echo $OPTARG/|cut -d/ -f2);; - r) rmem=$(echo $OPTARG/|cut -d/ -f1);rcpu=$(echo $OPTARG/|cut -d/ -f2);pe_node=$(echo $OPTARG/|cut -d/ -f3);; - t) timew=$OPTARG;; - u) userid=$OPTARG;; - v) verbose=YES;; - w) when=$OPTARG;; - \?) echo $0: invalid option >&2;echo "$usage" >&2;exit 1;; - esac -done -shift $(($OPTIND-1)) -if [[ $# -eq 0 ]];then - echo $0: missing executable name >&2;echo "$usage" >&2;exit 1 -fi -exec=$1 -if [[ ! -s $exec ]]&&which $exec >/dev/null 2>&1;then - exec=$(which $exec) -fi -shift -args="$*" -bn=$(basename $exec) -export jobname=${jobname:-$bn} -output=${output:-$jobname.out} -myuser=$LOGNAME -myhost=$(hostname) -mpiver=${mpiver:-poe} -envars=$envars - -#DATA=/lustre/fs/scratch/$LOGNAME/stmpp1 -DATA=${DATA:-/stmpp1/$LOGNAME/sub} -if [ -s $DATA ] ; then - MKDATA=NO -else - mkdir -p $DATA - MKDATA=YES -fi - -queue=${queue:-dev} -timew=${timew:-01:20} -timew=$(echo $timew |cut -d: -f1):$(echo $timew |cut -d: -f2) -threads=${rcpu:-1} - - -max_core=${max_core:-16} -task_node=${pe_node:-${task_node:-$max_core}} - -export INHERIT_ENV=${INHERIT_ENV:-YES} -export TASK_GEOMETRY=${TASK_GEOMETRY:-NONE} -if [ "$TASK_GEOMETRY" = NONE ] ; then - if [ $nodes -eq 1 ] ; then - task_node=$procs - fi - tot_size=$((procs*nodes)) -else - tot_size=$((task_node*nodes)) -fi -if [ $((task_node*threads)) -gt $max_core ]; then - core=cpu - echo "Hyper-threading is used - setting core=$core" -fi -export core=${core:-core} - -export KMP_STACKSIZE=${KMP_STACKSIZE:-1024m} - -export TZ=GMT -cfile=$DATA/sub$$ -> $cfile - -if [ $INHERIT_ENV = YES ] ; then - echo "#!/bin/ksh" >> $cfile -else - echo "#!/bin/ksh --login" >> $cfile - echo "#BSUB -L /bin/ksh" >> $cfile -fi -echo "#BSUB -a $mpiver" >> $cfile -echo "#BSUB -P $account" >> $cfile -echo "#BSUB -e $output" >> $cfile -echo "#BSUB -o $output" >> $cfile -echo "#BSUB -cwd $dirin" >> $cfile -##echo "#BSUB -o $output.%J" >> $cfile -echo "#BSUB -J $jobname" >> $cfile -echo "#BSUB -network type=sn_all:mode=US" >> $cfile -echo "#BSUB -q $queue" >> $cfile -echo "#BSUB -n $tot_size" >> $cfile -if [ $mpiver = openmp ] ; then - echo "#BSUB -R span[ptile=$procs]" >> $cfile - echo "#BSUB -R affinity[$core]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile -else - echo "#BSUB -R span[ptile=$procs]" >> $cfile -fi -if [ $threads -gt 1 ] ; then - if [ $core = core ] ; then - echo "#BSUB -R affinity[core($threads)]" >> $cfile - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -x" >> $cfile - fi - else - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R affinity[cpu($threads):distribute=balance]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -R affinity[cpu($threads):distribute=balance]" >> $cfile - echo "#BSUB -x" >> $cfile - fi - fi -else - if [ $core = core ] ; then - echo "#BSUB -R affinity[$core]" >> $cfile - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -x" >> $cfile - fi - else - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R affinity[cpu:distribute=balance]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -R affinity[cpu:distribute=balance]" >> $cfile - echo "#BSUB -x" >> $cfile - fi - fi -fi -echo "#BSUB -W $timew" >> $cfile - -if [[ -n $when ]];then - whena=$when - if [[ $when = +* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H%M") - ((mn+=$(echo $now|cut -c11-12))) - [[ $mn -ge 60 ]] && ((hr+=1)) && ((mn-=60)) - [[ $mn -lt 10 ]] && mn=0$mn - whena=$(/nwprod/util/exec/ndate +$hr $(echo $now|cut -c1-10))$mn - elif [[ $when = t* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d") - whena=$now$hr$mn - elif [[ $when = T* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H") - whena=$(/nwprod/util/exec/ndate +24 $now|cut -c1-8)$hr$mn - fi - yr=$(echo $whena|cut -c1-4) - mo=$(echo $whena|cut -c5-6) - dy=$(echo $whena|cut -c7-8) - hr=$(echo $whena|cut -c9-10) - mn=$(echo $whena|cut -c11-12) - [[ -n $mn ]] || mn=00 - echo "#BSUB -b $yr:$mo:$dy:$hr:$mn" >> $cfile -fi - -#echo "source ~${LOGNAME}/.profile" >> $cfile -#echo "ulimit -s unlimited" >> $cfile -#if [ ${MP_EUIDEVICE:-NULL} = sn_all ] ; then -#echo "#BSUB -network \"type=sn_all:mode=US\" " >> $cfile -#fi -#if [ ${MP_EULIB:-NULL} != NULL ] ; then -#echo "export MP_EUILIB=$MP_EUILIB" >> $cfile -#fi - -if [ ${MP_EUIDEVELOP:-NULL} != NULL ] ; then - echo "export MP_EUIDEVELOP=$MP_EUIDEVELOP" >> $cfile -fi -echo "export KMP_STACKSIZE=$KMP_STACKSIZE" >> $cfile -if [ ${F_UFMTENDIAN:-NULL} != NULL ] ; then - echo "export F_UFMTENDIAN=$F_UFMTENDIAN" >> $cfile -fi -if [ ${MPICH_ALLTOALL_THROTTLE:-NULL} != NULL ] ; then - echo "export MPICH_ALLTOALL_THROTTLE=$MPICH_ALLTOALL_THROTTLE" >> $cfile -fi -if [ ${MP_SINGLE_THREAD:-NULL} != NULL ] ; then - echo "export MP_SINGLE_THREAD=$MP_SINGLE_THREAD" >> $cfile -fi -if [ ${MP_EAGER_LIMIT:-NULL} != NULL ] ; then - echo "export MP_EAGER_LIMIT=$MP_EAGER_LIMIT" >> $cfile -fi - -if [ ${MP_USE_BULK_XFER:-NULL} != NULL ] ; then - echo "export MP_USE_BULK_XFER=$MP_USE_BULK_XFER" >> $cfile -fi -if [ ${MP_COLLECTIVE_OFFLOAD:-NULL} != NULL ] ; then - echo "export MP_COLLECTIVE_OFFLOAD=$MP_COLLECTIVE_OFFLOAD" >> $cfile -fi -if [ ${MP_SHARED_MEMORY:-NULL} != NULL ] ; then - echo "export MP_SHARED_MEMORY=$MP_SHARED_MEMORY" >> $cfile -fi -if [ ${MP_MPILIB:-NULL} != NULL ] ; then - echo "export MP_MPILIB=$MP_MPILIB" >> $cfile -fi -if [ ${MP_LABELIO:-NULL} != NULL ] ; then - echo "export MP_LABELIO=$MP_LABELIO" >> $cfile -fi -if [ ${MP_STDOUTMODE:-NULL} != NULL ] ; then - echo "export MP_STDOUTMODE=$MP_STDOUTMODE " >> $cfile -fi -if [ "$TASK_GEOMETRY" != NONE ] ; then - echo "export LSB_PJL_TASK_GEOMETRY=\"$TASK_GEOMETRY\"" >> $cfile -fi -for var in $(eval echo $envars | tr , ' ') ; do - echo "export $var" >> $cfile -done -echo "export OMP_NUM_THREADS=$threads" >> $cfile -echo "" >>$cfile -echo ". "$(awk '{ print $1, $2, $3, $4, $5, $6, $7, $8, $9 }' $regdir/regression_var.out) >> $cfile -echo "" >>$cfile - -echo ". $MODULESHOME/init/ksh" >> $cfile -echo "module purge" >> $cfile -echo "module use -a $gsisrc/modulefiles" >> $cfile -echo "module load modulefile.ProdGSI.wcoss" >> $cfile -echo "module list" >> $cfile - -echo "$exec" >> $cfile - -if [[ $stdin = YES ]];then - cat -fi >>$cfile -if [[ $nosub = YES ]];then - cat $cfile - exit -elif [[ $verbose = YES ]];then - set -x - cat $cfile -fi -bsub=${bsub:-$LSF_BINDIR/bsub} - -ofile=$DATA/subout$$ ->$ofile -chmod 777 $ofile -$bsub < $cfile -rc=$? -cat $ofile -if [[ -w $SUBLOG ]];then - jobn=$(grep -i submitted $ofile|head -n1|cut -d\" -f2) - date +"%Y%m%d%H%M%S : $subcmd : $jobn" >>$SUBLOG -fi -rm $cfile $ofile -[[ $MKDATA = YES ]] && rmdir $DATA -exit $rc diff --git a/ush/sub_wcoss2 b/ush/sub_wcoss2 new file mode 100755 index 000000000..57115ef7c --- /dev/null +++ b/ush/sub_wcoss2 @@ -0,0 +1,176 @@ +#!/bin/sh --login +set -x +echo "starting sub_wcoss2" +usage="\ +Usage: $0 [options] executable [args] + where the options are: + -a account account (default: none) + -b binding run smt binding or not (default:NO) + -d dirin initial directory (default: cwd) + -e envars copy comma-separated environment variables + -g group group name + -i append standard input to command file + -j jobname specify jobname (default: executable basename) + -m machine machine on which to run (default: current) + -n write command file to stdout rather than submitting it + -o output specify output file (default: jobname.out) + -p procs[/nodes[/ppreq] + number of MPI tasks and optional nodes or Bblocking and + ppreq option (N or S) (defaults: serial, Bunlimited, S) + -q queue[/qpreq] queue name and optional requirement, e.g. dev/P + (defaults: 1 if serial or dev if parallel and none) + (queue 3 or 4 is dev or prod with twice tasks over ip) + (options: P=parallel, B=bigmem, b=batch) + -r rmem[/rcpu] resources memory and cpus/task (default: '1024 mb', 1) + -t timew wall time limit in [[hh:]mm:]ss format (default: 900) + -u userid userid to run under (default: self) + -v verbose mode + -w when when to run, in yyyymmddhh[mm], +hh[mm], thh[mm], or + Thh[mm] (full, incremental, today or tomorrow) format + (default: now) +Function: This command submits a job to the batch queue." +subcmd="$*" +stdin=NO +nosub=NO +account="" +binding="NO" +dirin="" +envars="" +group="" +jobname="" +machine="" +output="" +procs=0 +nodes="" +ppreq="" +queue="" +qpreq="" +rmem="1024" +rcpu="1" +timew="900" +userid="" +verbose=NO +when="" +while getopts a:b:d:e:g:ij:m:no:p:q:r:t:u:vw: opt;do + case $opt in + a) account="$OPTARG";; + b) binding="$OPTARG";; + d) dirin="$OPTARG";; + e) envars="$OPTARG";; + g) group="$OPTARG";; + i) stdin=YES;; + j) jobname=$OPTARG;; + m) machine="$OPTARG";; + n) nosub=YES;; + o) output=$OPTARG;; + p) procs=$(echo $OPTARG/|cut -d/ -f1);nodes=$(echo $OPTARG/|cut -d/ -f2);ppreq=$(echo $OPTARG/|cut -d/ -f3);; + q) queue=$(echo $OPTARG/|cut -d/ -f1);qpreq=$(echo $OPTARG/|cut -d/ -f2);; + r) rmem=$(echo $OPTARG/|cut -d/ -f1);rcpu=$(echo $OPTARG/|cut -d/ -f2);; + t) timew=$OPTARG;; + u) userid=$OPTARG;; + v) verbose=YES;; + w) when=$OPTARG;; + \?) echo $0: invalid option >&2;echo "$usage" >&2;exit 1;; + esac +done +shift $(($OPTIND-1)) +if [[ $# -eq 0 ]];then + echo $0: missing executable name >&2;echo "$usage" >&2;exit 1 +fi +exec=$1 +if [[ ! -s $exec ]]&&which $exec >/dev/null 2>&1;then + exec=$(which $exec) +fi +shift +args="$*" +bn=$(basename $exec) +export jobname=${jobname:-$bn} +output=${output:-$jobname.out} +myuser=$LOGNAME +myhost=$(hostname) + +DATA=/lfs/h2/emc/stmp/$LOGNAME/tmp +mkdir -p $DATA + +queue=${queue:-dev} +timew=${timew:-01:20:00} +task_node=${task_node:-$procs} +size=$((nodes*task_node)) +envars=$envars +threads=${rcpu:-1} +ncpus=$((procs*threads)) + +export TZ=GMT +cfile=$DATA/sub$$ +> $cfile +echo "#!/bin/bash" >> $cfile +echo "" >> $cfile +echo "#PBS -o $output" >> $cfile +echo "#PBS -N $jobname" >> $cfile +echo "#PBS -q $queue" >> $cfile +echo "#PBS -l walltime=$timew" >> $cfile +echo "#PBS -l select=$nodes:mpiprocs=$procs:ompthreads=$threads:ncpus=$ncpus" >> $cfile +echo "#PBS -l place=vscatter:exclhost" >> $cfile +echo "#PBS -j oe" >> $cfile +echo "#PBS -A "$accnt >> $cfile + +echo "" >> $cfile +echo "export OMP_NUM_THREADS=$threads" >> $cfile +echo "export ntasks=$(( $nodes * $procs ))" >> $cfile +echo "export ppn=$procs" >> $cfile +echo "export threads=$threads" >> $cfile +echo "" >> $cfile +echo ". "$(awk '{ print $1, $2, $3, $4, $5, $6, $7, $8, $9 }' $regdir/regression_var.out) >>$cfile +echo "" >> $cfile + +echo "module purge" >> $cfile +echo "module load envvar/1.0" >> $cfile +echo "module load PrgEnv-intel/8.2.0" >> $cfile +echo "module load intel/19.1.3.304" >> $cfile +echo "module load craype/2.7.13" >> $cfile +echo "module load cray-mpich/8.1.12" >> $cfile +echo "module load cray-pals/1.1.3" >> $cfile +echo "module load prod_util/2.0.14" >> $cfile +echo "module load prod_envir/2.0.6" >> $cfile +echo "module load crtm/2.4.0" >> $cfile +echo "module load cfp/2.0.4" >> $cfile +echo "module load netcdf/4.7.4" >> $cfile +echo "module list" >> $cfile +echo "" >> $cfile + +cat $exec >> $cfile + +if [[ $nosub = YES ]];then + cat $cfile + exit +elif [[ $verbose = YES ]];then + set -x + cat $cfile +fi + +if [[ $stdin = YES ]];then + cat +fi >>$cfile +if [[ $nosub = YES ]];then + cat $cfile + exit +elif [[ $verbose = YES ]];then + set -x + cat $cfile +fi +qsub=${qsub:-qsub} + +ofile=$DATA/subout$$ +>$ofile +chmod 777 $ofile +$qsub -V $cfile >$ofile +rc=$? +cat $ofile +if [[ -w $SUBLOG ]];then + jobn=$(grep -i submitted $ofile|head -n1|cut -d\" -f2) + date -u +"%Y%m%d%H%M%S : $subcmd : $jobn" >>$SUBLOG +fi +##rm $cfile $ofile +##[[ $MKDATA = YES ]] && rmdir $DATA +echo "ending sub_wcoss2" +exit $rc diff --git a/ush/sub_wcoss_c b/ush/sub_wcoss_c deleted file mode 100755 index 831e0a10f..000000000 --- a/ush/sub_wcoss_c +++ /dev/null @@ -1,299 +0,0 @@ -#!/bin/ksh -set -x -# -# May 28, 2013 - Shrinivas Moorthi :now updated for lsf9.1.1 - should handle coupled case also -# -usage="\ -Usage: $0 [options] executable [args] - where the options are: - -a account account (default: none) - -b binding run smt binding or not (default:NO) - -d dirin initial directory (default: cwd) - -e envars copy comma-separated environment variables - -g group group name - -i append standard input to command file - -j jobname specify jobname (default: executable basename) -# -m machine machine on which to run (default: current) - -m mpiver mpi version (poe or intelmpi) (default: poe) - -n write command file to stdout rather than submitting it - -o output specify output file (default: jobname.out) - -p procs[/nodes[/ppreq] - number of MPI tasks and optional nodes or Bblocking and - ppreq option (N or S) (defaults: serial, Bunlimited, S) - -q queue[/qpreq] queue name and optional requirement, e.g. dev/P - (defaults: 1 if serial or dev if parallel and none) - (queue 3 or 4 is dev or prod with twice tasks over ip) - (options: P=parallel, B=bigmem, b=batch) - -r rmem[/rcpu[/pe_node] resources memory and cpus/task and cores per node (default: '1024 mb', 1, and 16) - -t timew wall time limit in [[hh:]mm:]ss format (default: 900) - -u userid userid to run under (default: self) - -v verbose mode - -w when when to run, in yyyymmddhh[mm], +hh[mm], thh[mm], or - Thh[mm] (full, incremental, today or tomorrow) format - (default: now) - - You can also export variables and - \"INHERIT_ENV\" (default:-\"YES\") - Set this variable to \"NO\" and - export it if you do not want the next job to inherit current job - environment. - - Other environmental variables which can be exported from outside are: - - \"KMP_STACKSIZE\" (default:-\"1024m\") - \"MP_EUIDEVELOP\" (default:-\"NULL\") - \"F_UFMTENDIAN\" (default:-\"NULL\") - \"MPICH_ALLTOALL_THROTTLE\" (default:-\"NULL\") - \"MP_SINGLE_THREAD\" (default:-\"NULL\") - \"MP_EAGER_LIMIT\" (default:-\"NULL\") - \"MP_USE_BULK_XFER\" (default:-\"NULL\") - \"MP_COLLECTIVE_OFFLOAD\" (default:-\"NULL\") - \"MP_SHARED_MEMORY\" (default:-\"NULL\") - \"MP_MPILIB\" (default:-\"NULL\") - \"MP_LABELIO\" (default:-\"NULL\") - \"MP_STDOUTMODE\" (default:-\"NULL\") - \"DATA\" (default:-\"/stmp/$LOGNAME/sub\" - - deleted at the end if created) - -Function: This command submits a job to the batch queue." -subcmd="$*" -stdin=NO -nosub=NO -account="" -binding="NO" -dirin="" -envars="" -group="" -jobname="" -machine="" -mpiver="" -output="" -procs=0 -nodes="" -ppreq="NONE" -queue="" -qpreq="" -rmem="1024" -rcpu="1" -pe_node=${pe_node:-24} -timew="900" -userid="" -verbose=NO -when="" -while getopts a:b:d:e:g:ij:m:no:p:q:r:t:u:vw: opt;do - case $opt in - a) account="$OPTARG";; - b) binding="$OPTARG";; - d) dirin="$OPTARG";; - e) envars="$OPTARG";; - g) group="$OPTARG";; - i) stdin=YES;; - j) jobname=$OPTARG;; - m) machine="$OPTARG";; - m) mpiver="$OPTARG";; - n) nosub=YES;; - o) output=$OPTARG;; - p) procs=$(echo $OPTARG/|cut -d/ -f1);nodes=$(echo $OPTARG/|cut -d/ -f2);ppreq=$(echo $OPTARG/|cut -d/ -f3);; - q) queue=$(echo $OPTARG/|cut -d/ -f1);qpreq=$(echo $OPTARG/|cut -d/ -f2);; - r) rmem=$(echo $OPTARG/|cut -d/ -f1);rcpu=$(echo $OPTARG/|cut -d/ -f2);pe_node=$(echo $OPTARG/|cut -d/ -f3);; - t) timew=$OPTARG;; - u) userid=$OPTARG;; - v) verbose=YES;; - w) when=$OPTARG;; - \?) echo $0: invalid option >&2;echo "$usage" >&2;exit 1;; - esac -done -shift $(($OPTIND-1)) -if [[ $# -eq 0 ]];then - echo $0: missing executable name >&2;echo "$usage" >&2;exit 1 -fi -exec=$1 -if [[ ! -s $exec ]]&&which $exec >/dev/null 2>&1;then - exec=$(which $exec) -fi -shift -args="$*" -bn=$(basename $exec) -export jobname=${jobname:-$bn} -machine=${machine:-""} -output=${output:-$jobname.out} -myuser=$LOGNAME -myhost=$(hostname) -#mpiver=${mpiver:-poe} -envars=$envars - -#DATA=/lustre/fs/scratch/$LOGNAME/stmp -pext=${pext:-""} -PTMP=${PTMP:-/gpfs/hps/stmp} -DATA=${DATA:-$PTMP/$LOGNAME/sub} -if [ -s $DATA ] ; then - MKDATA=NO -else - mkdir -p $DATA - MKDATA=YES -fi -dirin=${dirin:-$(pwd)} - -queue=${queue:-dev} -timew=${timew:-01:20} -timew=$(echo $timew |cut -d: -f1):$(echo $timew |cut -d: -f2) -threads=${rcpu:-1} -nthreads=$threads - - -max_core=${max_core:-24} -ptile=$((procs/nodes)) -pe_node=${pe_ndoe:-$ptile} -task_node=${pe_node:-${task_node:-$max_core}} - -export INHERIT_ENV=${INHERIT_ENV:-YES} -if [ $nodes -eq 1 ] ; then - task_node=$procs -fi -tot_size=$procs -max_tasks=$((max_core*nodes)) -#tot_size=$procs -if [ $((task_node*threads)) -gt $max_core ]; then - core_typ=cpu - nthreads=$threads - threads=$((2*max_core/task_node)) - echo "Hyper-threading is used - setting core_typ=$corei_typ" -fi -export core_typ=${core_typ:-core} - -if [ $pe_node -eq $max_tasks -a $nthreads -gt 1 ] ; then - pe_node=$((npe_node/nthreads)) -fi - - -export OMP_STACKSIZE=${OMP_STACKSIZE:-1024m} -export KMP_AFFINITY=${KMP_AFFINITY:-disabled} -export OMP_NUM_THREADS=$nthreads - -export TZ=GMT -cfile=$DATA/sub$$ -> $cfile - -if [ $INHERIT_ENV = YES ] ; then - echo "#!/bin/ksh" >> $cfile -else - echo "#!/bin/sh --login" >> $cfile - echo "#BSUB -L /bin/sh" >> $cfile -fi -echo "#BSUB -P $account" >> $cfile -echo "#BSUB -e $output" >> $cfile -echo "#BSUB -o $output" >> $cfile -echo "#BSUB -J $jobname" >> $cfile -#echo "#BSUB -network type=sn_all:mode=US" >> $cfile -echo "#BSUB -q $queue" >> $cfile -#echo "#BSUB -n $tot_size" >> $cfile -if [ $queue = dev_transfer ] ; then - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile -fi -if [ $queue != dev_transfer ] ; then - echo "#BSUB -M $rmem" >> $cfile - echo "#BSUB -extsched 'CRAYLINUX[]' -R '1*{select[craylinux && !vnode]} + $max_tasks*{select[craylinux && vnode]span[ptile=24] cu[type=cabinet]}'" >> $cfile -fi -echo "#BSUB -W $timew" >> $cfile -echo "#BSUB -cwd $dirin" >> $cfile - -if [[ -n $when ]];then - whena=$when - if [[ $when = +* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H%M") - ((mn+=$(echo $now|cut -c11-12))) - [[ $mn -ge 60 ]] && ((hr+=1)) && ((mn-=60)) - [[ $mn -lt 10 ]] && mn=0$mn - whena=$($NDATE +$hr $(echo $now|cut -c1-10))$mn - elif [[ $when = t* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d") - whena=$now$hr$mn - elif [[ $when = T* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H") - whena=$($NDATE +24 $now|cut -c1-8)$hr$mn - fi - yr=$(echo $whena|cut -c1-4) - mo=$(echo $whena|cut -c5-6) - dy=$(echo $whena|cut -c7-8) - hr=$(echo $whena|cut -c9-10) - mn=$(echo $whena|cut -c11-12) - [[ -n $mn ]] || mn=00 - echo "#BSUB -b $yr:$mo:$dy:$hr:$mn" >> $cfile -fi - -#echo "source ~${LOGNAME}/.profile" >> $cfile -#echo "ulimit -s unlimited" >> $cfile -#if [ ${MP_EUIDEVICE:-NULL} = sn_all ] ; then -#echo "#BSUB -network \"type=sn_all:mode=US\" " >> $cfile -#fi -#if [ ${MP_EULIB:-NULL} != NULL ] ; then -#echo "export MP_EUILIB=$MP_EUILIB" >> $cfile -#fi - -if [ ${KMP_AFFINITY:-NULL} != NULL ] ; then - echo "export KMP_AFFINITY=$KMP_AFFINITY" >> $cfile -fi - -echo "export OMP_STACKSIZE=$OMP_STACKSIZE" >> $cfile -echo "export OMP_NUM_THREADS=$OMP_NUM_THREADS" >> $cfile -echo "export FORT_BUFFERED=true" >> $cfile - -if [ ${MP_LABELIO:-NULL} != NULL ] ; then - echo "export MP_LABELIO=$MP_LABELIO" >> $cfile -fi -if [ ${MP_STDOUTMODE:-NULL} != NULL ] ; then - echo "export MP_STDOUTMODE=$MP_STDOUTMODE " >> $cfile -fi -for var in $(eval echo $envars | tr , ' ') ; do - echo "export $var" >> $cfile -done - -if [ $INHERIT_ENV = YES ] ; then - echo ". $MODULESHOME/init/ksh" >> $cfile -else - echo ". $MODULESHOME/init/sh" >> $cfile -fi -echo "module purge" >> $cfile -echo "module use -a $gsisrc/modulefiles" >> $cfile -echo "module load modulefile.ProdGSI.wcoss_cray" >> $cfile -echo "module list" >> $cfile -echo "" >>$cfile - -APRUN="aprun -j1 -n $procs -N $pe_node -d $nthreads -cc depth" -echo "export APRUN='$APRUN'" >> $cfile - -echo "$exec" >> $cfile - -if [[ $stdin = YES ]];then - cat -fi >>$cfile -if [[ $nosub = YES ]];then - cat $cfile - exit -elif [[ $verbose = YES ]];then - set -x - cat $cfile -fi -bsub=${bsub:-$LSF_BINDIR/bsub} - -ofile=$DATA/subout$$ ->$ofile -chmod 777 $ofile -$bsub < $cfile -rc=$? -cat $ofile -if [[ -w $SUBLOG ]];then - jobn=$(grep -i submitted $ofile|head -n1|cut -d\" -f2) - date +"%Y%m%d%H%M%S : $subcmd : $jobn" >>$SUBLOG -fi -#rm $cfile $ofile -#[[ $MKDATA = YES ]] && rmdir $DATA -exit $rc diff --git a/ush/sub_wcoss_d b/ush/sub_wcoss_d deleted file mode 100755 index 84a57226b..000000000 --- a/ush/sub_wcoss_d +++ /dev/null @@ -1,345 +0,0 @@ -#!/bin/ksh -set -x -# -# May 28, 2013 - Shrinivas Moorthi :now updated for lsf9.1.1 - should handle coupled case also -# -usage="\ -Usage: $0 [options] executable [args] - where the options are: - -a account account (default: none) - -b binding run smt binding or not (default:NO) - -d dirin initial directory (default: cwd) - -e envars copy comma-separated environment variables - -g group group name - -i append standard input to command file - -j jobname specify jobname (default: executable basename) -# -m machine machine on which to run (default: current) - -m mpiver mpi version (poe or intelmpi) (default: poe) - -n write command file to stdout rather than submitting it - -o output specify output file (default: jobname.out) - -p procs[/nodes[/ppreq] - number of MPI tasks and optional nodes or Bblocking and - ppreq option (N or S) (defaults: serial, Bunlimited, S) - -q queue[/qpreq] queue name and optional requirement, e.g. dev/P - (defaults: 1 if serial or dev if parallel and none) - (queue 3 or 4 is dev or prod with twice tasks over ip) - (options: P=parallel, B=bigmem, b=batch) - -r rmem[/rcpu[/pe_node] resources memory and cpus/task and cores per node (default: '1024 mb', 1, and 16) - -t timew wall time limit in [[hh:]mm:]ss format (default: 900) - -u userid userid to run under (default: self) - -v verbose mode - -w when when to run, in yyyymmddhh[mm], +hh[mm], thh[mm], or - Thh[mm] (full, incremental, today or tomorrow) format - (default: now) - - You can also export variables \"TASK_GEOMETRY\" (default:-\"NONE\") and - \"INHERIT_ENV\" (default:-\"YES\") - Set this variable to \"NO\" and - export it if you do not want the next job to inherit current job - environment. - - Other environmental variables which can be exported from outside are: - - \"KMP_STACKSIZE\" (default:-\"1024m\") - \"MP_EUIDEVELOP\" (default:-\"NULL\") - \"F_UFMTENDIAN\" (default:-\"NULL\") - \"MPICH_ALLTOALL_THROTTLE\" (default:-\"NULL\") - \"MP_SINGLE_THREAD\" (default:-\"NULL\") - \"MP_EAGER_LIMIT\" (default:-\"NULL\") - \"MP_USE_BULK_XFER\" (default:-\"NULL\") - \"MP_COLLECTIVE_OFFLOAD\" (default:-\"NULL\") - \"MP_SHARED_MEMORY\" (default:-\"NULL\") - \"MP_MPILIB\" (default:-\"NULL\") - \"MP_LABELIO\" (default:-\"NULL\") - \"MP_STDOUTMODE\" (default:-\"NULL\") - \"DATA\" (default:-\"/stmpp1/$LOGNAME/sub\" - - deleted at the end if created) - -Function: This command submits a job to the batch queue." -subcmd="$*" -stdin=NO -nosub=NO -account="" -binding="NO" -dirin="" -envars="" -group="" -jobname="" -machine="" -mpiver="" -output="" -procs=0 -nodes="" -ppreq="" -queue="" -qpreq="" -rmem="1024" -rcpu="1" -pe_node="16" -timew="900" -userid="" -verbose=NO -when="" -while getopts a:b:d:e:g:ij:m:no:p:q:r:t:u:vw: opt;do - case $opt in - a) account="$OPTARG";; - b) binding="$OPTARG";; - d) dirin="$OPTARG";; - e) envars="$OPTARG";; - g) group="$OPTARG";; - i) stdin=YES;; - j) jobname=$OPTARG;; -# m) machine="$OPTARG";; - m) mpiver="$OPTARG";; - n) nosub=YES;; - o) output=$OPTARG;; - p) procs=$(echo $OPTARG/|cut -d/ -f1);nodes=$(echo $OPTARG/|cut -d/ -f2);ppreq=$(echo $OPTARG/|cut -d/ -f3);; - q) queue=$(echo $OPTARG/|cut -d/ -f1);qpreq=$(echo $OPTARG/|cut -d/ -f2);; - r) rmem=$(echo $OPTARG/|cut -d/ -f1);rcpu=$(echo $OPTARG/|cut -d/ -f2);pe_node=$(echo $OPTARG/|cut -d/ -f3);; - t) timew=$OPTARG;; - u) userid=$OPTARG;; - v) verbose=YES;; - w) when=$OPTARG;; - \?) echo $0: invalid option >&2;echo "$usage" >&2;exit 1;; - esac -done -shift $(($OPTIND-1)) -if [[ $# -eq 0 ]];then - echo $0: missing executable name >&2;echo "$usage" >&2;exit 1 -fi -exec=$1 -if [[ ! -s $exec ]]&&which $exec >/dev/null 2>&1;then - exec=$(which $exec) -fi -shift -args="$*" -bn=$(basename $exec) -export jobname=${jobname:-$bn} -output=${output:-$jobname.out} -myuser=$LOGNAME -myhost=$(hostname) -#mpiver=${mpiver:-intelmpi} -envars=$envars - -#DATA=/lustre/fs/scratch/$LOGNAME/stmpp1 -DATA=${DATA:-/gpfs/dell2/ptmp/$LOGNAME/sub} -if [ -s $DATA ] ; then - MKDATA=NO -else - mkdir -p $DATA - MKDATA=YES -fi - -queue=${queue:-dev} -timew=${timew:-01:20} -timew=$(echo $timew |cut -d: -f1):$(echo $timew |cut -d: -f2) -threads=${rcpu:-1} - - -max_core=${max_core:-16} -task_node=${pe_node:-${task_node:-$max_core}} - -export INHERIT_ENV=${INHERIT_ENV:-YES} -export TASK_GEOMETRY=${TASK_GEOMETRY:-NONE} -if [ "$TASK_GEOMETRY" = NONE ] ; then - if [ $nodes -eq 1 ] ; then - task_node=$procs - fi - tot_size=$((procs*nodes)) -else - tot_size=$((task_node*nodes)) -fi -if [ $((task_node*threads)) -gt $max_core ]; then - core=cpu - echo "Hyper-threading is used - setting core=$core" -fi -export core=${core:-core} - -export KMP_STACKSIZE=${KMP_STACKSIZE:-1024m} - -export TZ=GMT -cfile=$DATA/sub$$ -> $cfile - -if [ $INHERIT_ENV = YES ] ; then - echo "#!/bin/bash" >> $cfile -else - echo "#!/bin/bash " >> $cfile - echo "#BSUB -L /bin/bash" >> $cfile -fi -#echo "#BSUB -a $mpiver" >> $cfile -echo "#BSUB -P $account" >> $cfile -echo "#BSUB -e $output" >> $cfile -echo "#BSUB -o $output" >> $cfile -echo "#BSUB -cwd $dirin" >> $cfile -##echo "#BSUB -o $output.%J" >> $cfile -echo "#BSUB -J $jobname" >> $cfile -#echo "#BSUB -network type=sn_all:mode=US" >> $cfile -echo "#BSUB -q $queue" >> $cfile -echo "#BSUB -n $tot_size" >> $cfile -if [ $mpiver = openmp ] ; then - echo "#BSUB -R span[ptile=$procs]" >> $cfile - echo "#BSUB -R affinity[$core]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile -else - echo "#BSUB -R span[ptile=$procs]" >> $cfile -fi -if [ $threads -gt 1 ] ; then - if [ $core = core ] ; then - echo "#BSUB -R affinity[core($threads)]" >> $cfile - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -x" >> $cfile - fi - else - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R affinity[cpu($threads):distribute=balance]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -R affinity[cpu($threads):distribute=balance]" >> $cfile - echo "#BSUB -x" >> $cfile - fi - fi -else - if [ $core = core ] ; then - echo "#BSUB -R affinity[$core]" >> $cfile - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -x" >> $cfile - fi - else - if [ $queue = shared -o $ppreq = S ] ; then - echo "#BSUB -R affinity[cpu:distribute=balance]" >> $cfile - echo "#BSUB -R rusage[mem=$rmem]" >> $cfile - else - echo "#BSUB -R affinity[cpu:distribute=balance]" >> $cfile - echo "#BSUB -x" >> $cfile - fi - fi -fi -echo "#BSUB -W $timew" >> $cfile - -if [[ -n $when ]];then - whena=$when - if [[ $when = +* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H%M") - ((mn+=$(echo $now|cut -c11-12))) - [[ $mn -ge 60 ]] && ((hr+=1)) && ((mn-=60)) - [[ $mn -lt 10 ]] && mn=0$mn - whena=$(/nwprod/util/exec/ndate +$hr $(echo $now|cut -c1-10))$mn - elif [[ $when = t* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d") - whena=$now$hr$mn - elif [[ $when = T* ]];then - hr=$(echo $when|cut -c2-3) - mn=$(echo $when|cut -c4-5) - [[ -n $mn ]] || mn=00 - now=$(date -u +"%Y%m%d%H") - whena=$(/nwprod/util/exec/ndate +24 $now|cut -c1-8)$hr$mn - fi - yr=$(echo $whena|cut -c1-4) - mo=$(echo $whena|cut -c5-6) - dy=$(echo $whena|cut -c7-8) - hr=$(echo $whena|cut -c9-10) - mn=$(echo $whena|cut -c11-12) - [[ -n $mn ]] || mn=00 - echo "#BSUB -b $yr:$mo:$dy:$hr:$mn" >> $cfile -fi - -#echo "source ~${LOGNAME}/.profile" >> $cfile -#echo "ulimit -s unlimited" >> $cfile -#if [ ${MP_EUIDEVICE:-NULL} = sn_all ] ; then -#echo "#BSUB -network \"type=sn_all:mode=US\" " >> $cfile -#fi -#if [ ${MP_EULIB:-NULL} != NULL ] ; then -#echo "export MP_EUILIB=$MP_EUILIB" >> $cfile -#fi - -if [ ${MP_EUIDEVELOP:-NULL} != NULL ] ; then - echo "export MP_EUIDEVELOP=$MP_EUIDEVELOP" >> $cfile -fi -echo "export KMP_STACKSIZE=$KMP_STACKSIZE" >> $cfile -if [ ${F_UFMTENDIAN:-NULL} != NULL ] ; then - echo "export F_UFMTENDIAN=$F_UFMTENDIAN" >> $cfile -fi -if [ ${MPICH_ALLTOALL_THROTTLE:-NULL} != NULL ] ; then - echo "export MPICH_ALLTOALL_THROTTLE=$MPICH_ALLTOALL_THROTTLE" >> $cfile -fi -if [ ${MP_SINGLE_THREAD:-NULL} != NULL ] ; then - echo "export MP_SINGLE_THREAD=$MP_SINGLE_THREAD" >> $cfile -fi -if [ ${MP_EAGER_LIMIT:-NULL} != NULL ] ; then - echo "export MP_EAGER_LIMIT=$MP_EAGER_LIMIT" >> $cfile -fi - -if [ ${MP_USE_BULK_XFER:-NULL} != NULL ] ; then - echo "export MP_USE_BULK_XFER=$MP_USE_BULK_XFER" >> $cfile -fi -if [ ${MP_COLLECTIVE_OFFLOAD:-NULL} != NULL ] ; then - echo "export MP_COLLECTIVE_OFFLOAD=$MP_COLLECTIVE_OFFLOAD" >> $cfile -fi -if [ ${MP_SHARED_MEMORY:-NULL} != NULL ] ; then - echo "export MP_SHARED_MEMORY=$MP_SHARED_MEMORY" >> $cfile -fi -if [ ${MP_MPILIB:-NULL} != NULL ] ; then - echo "export MP_MPILIB=$MP_MPILIB" >> $cfile -fi -if [ ${MP_LABELIO:-NULL} != NULL ] ; then - echo "export MP_LABELIO=$MP_LABELIO" >> $cfile -fi -if [ ${MP_STDOUTMODE:-NULL} != NULL ] ; then - echo "export MP_STDOUTMODE=$MP_STDOUTMODE " >> $cfile -fi -if [ "$TASK_GEOMETRY" != NONE ] ; then - echo "export LSB_PJL_TASK_GEOMETRY=\"$TASK_GEOMETRY\"" >> $cfile -fi -for var in $(eval echo $envars | tr , ' ') ; do - echo "export $var" >> $cfile -done - -echo "export OMP_NUM_THREADS=$threads" >> $cfile -echo "" >>$cfile -echo ". "$(awk '{ print $1, $2, $3, $4, $5, $6, $7, $8, $9 }' $regdir/regression_var.out) >> $cfile -echo "" >>$cfile - -echo ". $MODULESHOME/init/bash" >> $cfile -echo "module purge" >> $cfile -echo "module use -a $gsisrc/modulefiles" >> $cfile -echo "module load gsi_wcoss_dell_p3" >> $cfile -echo "module list" >> $cfile -echo "" >>$cfile - -echo "$exec" >> $cfile - -if [[ $stdin = YES ]];then - cat -fi >>$cfile -if [[ $nosub = YES ]];then - cat $cfile - exit -elif [[ $verbose = YES ]];then - set -x - cat $cfile -fi -bsub=${bsub:-$LSF_BINDIR/bsub} - -ofile=subout$$ ->$ofile -chmod 777 $ofile -$bsub < $cfile -rc=$? -cat $ofile -if [[ -w $SUBLOG ]];then - jobn=$(grep -i submitted $ofile|head -n1|cut -d\" -f2) - date +"%Y%m%d%H%M%S : $subcmd : $jobn" >>$SUBLOG -fi -rm $cfile $ofile -[[ $MKDATA = YES ]] && rmdir $DATA -exit $rc