diff --git a/regression/CMakeLists.txt b/regression/CMakeLists.txt index 5082de2a0b..84198edf7d 100644 --- a/regression/CMakeLists.txt +++ b/regression/CMakeLists.txt @@ -38,19 +38,17 @@ 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 + global_3dvar global_4dvar global_4denvar 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 ) # 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/global_3dvar.sh b/regression/global_3dvar.sh new file mode 100755 index 0000000000..145cb6212c --- /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 0000000000..7212b819e9 --- /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 fd6bbf9b69..0000000000 --- a/regression/global_4denvar_T126.sh +++ /dev/null @@ -1,420 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Daryl.Kleist -#gsipath=$basedir/gsi/ -#gsiexec=$gsipath/trunk/src/global_gsi.x - -# 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 0000000000..ec2a8396e0 --- /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.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 now" +eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout.obsvr 2>&1" +rc=$? + +# 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 now" +eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout 2>&1" +rc=$? + +exit $rc diff --git a/regression/global_4dvar_T62.sh b/regression/global_4dvar_T62.sh deleted file mode 100755 index 46aed61319..0000000000 --- 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 438cd6dc0e..0000000000 --- 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 6e990be1be..0000000000 --- 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 06c0ddeacb..0000000000 --- a/regression/global_T62.sh +++ /dev/null @@ -1,457 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Michael.Lueken -#gsiexec=$gsiexec -#gsiexec=$basedir/EXP-port/src/global_gsi.x - - -# 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 6f2119fd3c..0000000000 --- a/regression/global_T62_ozonly.sh +++ /dev/null @@ -1,435 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Michael.Lueken -#gsiexec=$gsiexec -#gsiexec=$basedir/EXP-port/src/global_gsi.x - - -# 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 0000000000..e458c5830d --- /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 3ddc18ba0c..0000000000 --- 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 27c6f2798d..0000000000 --- a/regression/global_fv3_4denvar_C192.sh +++ /dev/null @@ -1,425 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Daryl.Kleist -#gsipath=$basedir/gsi/ -#gsiexec=$gsipath/trunk/src/global_gsi.x - -# 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 3bcff2b674..0000000000 --- a/regression/global_fv3_4denvar_T126.sh +++ /dev/null @@ -1,437 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Daryl.Kleist -#gsipath=$basedir/gsi/ -#gsiexec=$gsipath/trunk/src/global_gsi.x - -# 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 6472a84911..0000000000 --- a/regression/global_hybrid_T126.sh +++ /dev/null @@ -1,370 +0,0 @@ - -set -x - -# Set experiment name and analysis date - -exp=$jobname - -# Set path/file for gsi executable -#basedir=/scratch1/portfolios/NCEPDEV/da/save/Daryl.Kleist -#gsipath=$basedir/gsi/ -#gsiexec=$gsipath/trunk/src/global_gsi.x - -# 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 55014a58f0..0000000000 --- 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 8278bb3655..0000000000 --- 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 ba7ae25521..e0d0681ec5 100755 --- a/regression/hwrf_nmm_d2.sh +++ b/regression/hwrf_nmm_d2.sh @@ -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 bde43050a8..58ab81a356 100755 --- a/regression/hwrf_nmm_d3.sh +++ b/regression/hwrf_nmm_d3.sh @@ -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 106bfcf3ad..4c39d2636c 100755 --- a/regression/multi_regression.sh +++ b/regression/multi_regression.sh @@ -1,12 +1,8 @@ #!/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 +regtests_all="global_3dvar + global_4dvar + global_4denvar arw_netcdf arw_binary nmm_binary @@ -16,16 +12,11 @@ regtests_all="global_T62 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 +regtests_debug="global_3dvar + global_4dvar + global_4denvar arw_netcdf arw_binary nmm_binary @@ -35,9 +26,7 @@ regtests_debug="global_T62 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/regression_driver.sh b/regression/regression_driver.sh index e67b2081b1..621ccbf485 100755 --- a/regression/regression_driver.sh +++ b/regression/regression_driver.sh @@ -56,7 +56,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 2d0e10f3df..3e4cd69ded 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, + optconv=0.05,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) @@ -469,296 +422,108 @@ export gsi_namelist=" $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)=145.0,dmesh(2)=150.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 l3rw 0.0 0 0 - l2rwbufr rw null l2rw 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 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 - 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 - abibufr abi g16 abi_g16 0.0 1 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 - abibufr abi g17 abi_g17 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_hybrid_T126_adate}, - obhourset=0., - $SINGLEOB - / - &NST - / -" -;; - - global_4denvar_T126 ) - -# 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, - 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., - $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)=145.0,dmesh(2)=150.0,dmesh(3)=100.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 - 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 + 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)=145.0,dmesh(2)=150.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 l3rw 0.0 0 0 + l2rwbufr rw null l2rw 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 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 + 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 + abibufr abi g16 abi_g16 0.0 1 0 + ahibufr ahi himawari8 ahi_himawari8 0.0 1 0 + abibufr abi g17 abi_g17 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 @@ -775,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 @@ -788,43 +553,51 @@ OBS_INPUT:: / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_4denvar_T670_adate}, + oblat=45.,oblon=180.,obpres=1000.,obdattim=${global_hybrid_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_T126 ) + global_4denvar ) # Define namelist for global hybrid run -export gsi_namelist=" +export gsi_namelist=" &SETUP - miter=2,niter(1)=5,niter(2)=5, + 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, - gencode=82,factqmin=0.5,factqmax=0.005,deltim=1200, + 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_gfs_nemsio=.true.,lrun_subdirs=.true.,use_readin_anl_sfcmask=.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., - l4densvar=.true.,ens_nstarthr=3,nhr_obsbin=1,nhr_assimilation=6,lwrite4danl=.false., tzr_qc=1,sfcnst_comb=.true., + 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., + optconv=0.05,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, @@ -838,25 +611,28 @@ export gsi_namelist=" / &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=.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. + 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)=1450.0,dmesh(2)=1500.0,dmesh(3)=1000.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:: @@ -864,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 @@ -899,7 +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 @@ -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 / " ;; @@ -2770,94 +2561,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 +2687,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 9eed1bbd54..1cf20f4afa 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,703 +168,7 @@ 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) - -# 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, - 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., - $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., - 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_T126 ) - -# Define namelist for global fv3 4denvar run - -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 ) + global_4denvar ) # Define namelist for global hybrid run @@ -2553,115 +1857,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 d8d52b2169..ddd302c4df 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 65f6774daf..19c05fdc9e 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" 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,128 +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" 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_fv3_4denvar_C192) - - 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" - 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" + 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 @@ -296,90 +144,21 @@ case $regtest in ;; - 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" = "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" = "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 + 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]="/2" elif [[ "$machine" = "Discover" ]]; then @@ -400,16 +179,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 @@ -427,19 +203,16 @@ case $regtest in 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" = "Orion" ]]; 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 + elif [[ "$machine" = "wcoss2" ]]; 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 @@ -460,19 +233,16 @@ case $regtest in 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" = "Orion" ]]; 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 + elif [[ "$machine" = "wcoss2" ]]; 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 @@ -493,19 +263,16 @@ case $regtest in 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" = "Orion" ]]; 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 + elif [[ "$machine" = "wcoss2" ]]; 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 @@ -523,28 +290,22 @@ case $regtest in 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 +317,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 +339,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" 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 +366,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 +401,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 +416,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 f9a736c05b..3014088dea 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 @@ -73,9 +69,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 diff --git a/regression/regression_test_enkf.sh b/regression/regression_test_enkf.sh index adaff2f2fc..213ee726da 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 # 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/sanl_${global_adate}_fhr06$member $tmpdir/sanl$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,7 +278,7 @@ fi } >> $output else { -nmem=20 +nmem=10 imem=1 while [[ $imem -le $nmem ]]; do member="_mem"`printf %03i $imem` @@ -377,7 +375,7 @@ else else { - nmem=20 + nmem=10 imem=1 while [[ $imem -le $nmem ]]; do member="_mem"`printf %03i $imem` diff --git a/regression/regression_var.sh b/regression/regression_var.sh index 70f27cfdd3..b1b7d72823 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" @@ -42,6 +43,8 @@ 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'"; @@ -61,6 +64,47 @@ case $machine in 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:-debug}" + 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 fixcrtm=${CRTM_FIX:-/apps/contrib/NCEPLIBS/orion/fix/crtm_v2.3.0} + export casesdir="/work/noaa/da/rtreadon/CASES/regtest" + + export check_resource="no" + export accnt="${accnt:-da-cpu}" + ;; Hera) export local_or_default="${local_or_default:-/scratch1/NCEPDEV/da/$LOGNAME}" @@ -73,23 +117,22 @@ case $machine in fi export group="${group:-global}" - export queue="${queue:-batch}" + export queue="${queue:-debug}" if [[ "$cmaketest" = "false" ]]; then export basedir="/scratch1/NCEPDEV/da/$LOGNAME/git/gsi" fi export ptmp="${ptmp:-/scratch1/NCEPDEV/stmp2/$LOGNAME/$ptmpName}" - export fixcrtm="${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 fixcrtm="${CRTM_FIX:-/scratch1/NCEPDEV/da/Michael.Lueken/CRTM_REL-2.2.3/crtm_v2.2.3/fix_update}" + export casesdir="/scratch1/NCEPDEV/da/Russ.Treadon/CASES/regtest" export check_resource="no" - 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) @@ -158,15 +201,7 @@ 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 global_adate="2022110900" export nmmb_nems_adate="2015061000" export arw_binary_adate="2010072412" export arw_netcdf_adate="2008051112" @@ -175,28 +210,9 @@ export nmm_netcdf_adate="2007122000" 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" # 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 global_data="$casesdir/gfs/prod" 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" @@ -213,10 +229,6 @@ 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" # Define type of GPSRO data to be assimilated (refractivity or bending angle) export gps_dtype="gps_bnd" @@ -227,7 +239,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/ush/build.sh b/ush/build.sh index 935a48307d..0126accd54 100755 --- a/ush/build.sh +++ b/ush/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -eu +set -eux # Get the root of the cloned GSI directory readonly DIR_ROOT=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/.." && pwd -P) @@ -26,14 +26,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/sub_orion b/ush/sub_orion new file mode 100755 index 0000000000..065e7c8ab0 --- /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_wcoss2 b/ush/sub_wcoss2 new file mode 100755 index 0000000000..57115ef7c6 --- /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