diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 10f8b630c9..198fd351e0 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -120,9 +120,10 @@ $Build_ufs_model && { } #------------------------------------ -# build GSI and EnKF +# build GSI and EnKF - optional checkout #------------------------------------ -$Build_gsi_enkf && { +if [ -d gsi_enkf.fd ]; then + $Build_gsi_enkf && { echo " .... Building gsi and enkf .... " ./build_gsi_enkf.sh $_ops_opt $_verbose_opt > $logs_dir/build_gsi_enkf.log 2>&1 rc=$? @@ -132,11 +133,15 @@ $Build_gsi_enkf && { fi ((err+=$rc)) } +else + echo " .... Skip building gsi and enkf .... " +fi #------------------------------------ # build gsi utilities #------------------------------------ -$Build_gsi_utils && { +if [ -d gsi_utils.fd ]; then + $Build_gsi_utils && { echo " .... Building gsi utilities .... " ./build_gsi_utils.sh $_ops_opt $_verbose_opt > $logs_dir/build_gsi_utils.log 2>&1 rc=$? @@ -146,25 +151,33 @@ $Build_gsi_utils && { fi ((err+=$rc)) } +else + echo " .... Skip building gsi utilities .... " +fi #------------------------------------ -# build gdas -#------------------------------------ -$Build_gdas && { - echo " .... Building GDASApp .... " - ./build_gdas.sh > $logs_dir/build_gdas.log 2>&1 - rc=$? - if [[ $rc -ne 0 ]] ; then - echo "Fatal error in building GDAS." - echo "The log file is in $logs_dir/build_gdas.log" - fi - ((err+=$rc)) +# build gdas - optional checkout +#------------------------------------ +if [ -d gdas.cd ]; then + $Build_gdas && { + echo " .... Building GDASApp .... " + ./build_gdas.sh $_verbose_opt > $logs_dir/build_gdas.log 2>&1 + rc=$? + if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building GDASApp." + echo "The log file is in $logs_dir/build_gdas.log" + fi + ((err+=$rc)) } +else + echo " .... Skip building GDASApp .... " +fi #------------------------------------ # build gsi monitor #------------------------------------ -$Build_gsi_monitor && { +if [ -d gsi_monitor.fd ]; then + $Build_gsi_monitor && { echo " .... Building gsi monitor .... " ./build_gsi_monitor.sh $_ops_opt $_verbose_opt > $logs_dir/build_gsi_monitor.log 2>&1 rc=$? @@ -174,6 +187,9 @@ $Build_gsi_monitor && { fi ((err+=$rc)) } +else + echo " .... Skip building gsi monitor .... " +fi #------------------------------------ # build UPP @@ -206,7 +222,8 @@ $Build_ufs_utils && { #------------------------------------ # build gldas #------------------------------------ -$Build_gldas && { +if [ -d gldas.fd ]; then + $Build_gldas && { echo " .... Building gldas .... " ./build_gldas.sh $_verbose_opt > $logs_dir/build_gldas.log 2>&1 rc=$? @@ -216,6 +233,9 @@ $Build_gldas && { fi ((err+=$rc)) } +else + echo " .... Skip building gldas .... " +fi #------------------------------------ # build gfs_wafs - optional checkout diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 9e1caf9022..fcf7235ae7 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -18,6 +18,10 @@ Usage: $BASH_SOURCE [-c][-h][-m ufs_hash][-o] Check out this UFS hash instead of the default -o: Check out operational-only code (GTG and WAFS) + -g: + Check out GSI for GSI-based DA + -u: + Check out GDASApp for UFS-based DA EOF exit 1 } @@ -56,7 +60,7 @@ function checkout() { fi cd "${topdir}" - if [[ -d "${dir}" && "${CLEAN:-NO}" == "YES" ]]; then + if [[ -d "${dir}" && $CLEAN == "YES" ]]; then echo "|-- Removing existing clone in ${dir}" rm -Rf "$dir" fi @@ -96,13 +100,30 @@ function checkout() { return 0 } -while getopts ":chm:o" option; do +# Set defaults for variables toggled by options +export CLEAN="NO" +CHECKOUT_GSI="NO" +CHECKOUT_GDAS="NO" +checkout_gtg="NO" +checkout_wafs="NO" +ufs_model_hash="b97375c" + +# Parse command line arguments +while getopts ":chgum:o" option; do case $option in c) echo "Recieved -c flag, will delete any existing directories and start clean" export CLEAN="YES" ;; + g) + echo "Receieved -g flag for optional checkout of GSI-based DA" + CHECKOUT_GSI="YES" + ;; h) usage;; + u) + echo "Received -u flag for optional checkout of UFS-based DA" + CHECKOUT_GDAS="YES" + ;; o) echo "Received -o flag for optional checkout of operational-only codes" checkout_gtg="YES" @@ -130,20 +151,29 @@ mkdir -p ${logdir} # The checkout version should always be a speciifc commit (hash or tag), not a branch errs=0 -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-b97375c}" ; errs=$((errs + $?)) -checkout "gsi_enkf.fd" "https://github.com/NOAA-EMC/GSI.git" "67f5ab4" ; errs=$((errs + $?)) -checkout "gsi_utils.fd" "https://github.com/NOAA-EMC/GSI-Utils.git" "322cc7b" ; errs=$((errs + $?)) -checkout "gsi_monitor.fd" "https://github.com/NOAA-EMC/GSI-Monitor.git" "acf8870" ; errs=$((errs + $?)) -checkout "gdas.cd" "https://github.com/NOAA-EMC/GDASApp.git" "5952c9d" ; errs=$((errs + $?)) -checkout "gldas.fd" "https://github.com/NOAA-EMC/GLDAS.git" "fd8ba62" ; errs=$((errs + $?)) -checkout "ufs_utils.fd" "https://github.com/ufs-community/UFS_UTILS.git" "a2b0817" ; errs=$((errs + $?)) -checkout "verif-global.fd" "https://github.com/NOAA-EMC/EMC_verif-global.git" "c267780" ; errs=$((errs + $?)) - -if [[ "${checkout_wafs:-NO}" == "YES" ]]; then +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash}"; errs=$((errs + $?)) +checkout "ufs_utils.fd" "https://github.com/ufs-community/UFS_UTILS.git" "a2b0817" ; errs=$((errs + $?)) +checkout "verif-global.fd" "https://github.com/NOAA-EMC/EMC_verif-global.git" "c267780" ; errs=$((errs + $?)) + +if [[ $CHECKOUT_GSI == "YES" ]]; then + checkout "gsi_enkf.fd" "https://github.com/NOAA-EMC/GSI.git" "67f5ab4"; errs=$((errs + $?)) +fi + +if [[ $CHECKOUT_GDAS == "YES" ]]; then + checkout "gdas.cd" "https://github.com/NOAA-EMC/GDASApp.git" "5952c9d"; errs=$((errs + $?)) +fi + +if [[ $CHECKOUT_GSI == "YES" || $CHECKOUT_GDAS == "YES" ]]; then + checkout "gsi_utils.fd" "https://github.com/NOAA-EMC/GSI-Utils.git" "322cc7b"; errs=$((errs + $?)) + checkout "gsi_monitor.fd" "https://github.com/NOAA-EMC/GSI-Monitor.git" "acf8870"; errs=$((errs + $?)) + checkout "gldas.fd" "https://github.com/NOAA-EMC/GLDAS.git" "fd8ba62"; errs=$((errs + $?)) +fi + +if [[ $checkout_wafs == "YES" ]]; then checkout "gfs_wafs.fd" "https://github.com/NOAA-EMC/EMC_gfs_wafs.git" "014a0b8"; errs=$((errs + $?)) fi -if [[ "${checkout_gtg:-NO}" == "YES" ]]; then +if [[ $checkout_gtg == "YES" ]]; then ################################################################################ # checkout_gtg ## yes: The gtg code at NCAR private repository is available for ops. GFS only. diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 22e9d99901..1ac7ad5b56 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -28,6 +28,7 @@ SLINK="ln -fs" pwd=$(pwd -P) # Link post +[[ -d upp.fd ]] && rm -rf upp.fd $LINK ufs_model.fd/FV3/upp upp.fd #------------------------------ @@ -66,8 +67,7 @@ for dir in fix_aer \ fix_cpl \ fix_wave \ fix_reg2grb2 \ - fix_ugwd \ - fix_jedi + fix_ugwd do if [ -d $dir ]; then [[ $RUN_ENVIR = nco ]] && chmod -R 755 $dir @@ -85,13 +85,17 @@ fi #--------------------------------------- #--add files from external repositories #--------------------------------------- -cd ${pwd}/../jobs ||exit 8 +if [ -d ../sorc/gldas.fd ]; then + cd ${pwd}/../jobs ||exit 8 $LINK ../sorc/gldas.fd/jobs/JGDAS_ATMOS_GLDAS . +fi cd ${pwd}/../parm ||exit 8 # [[ -d post ]] && rm -rf post # $LINK ../sorc/upp.fd/parm post - [[ -d gldas ]] && rm -rf gldas - $LINK ../sorc/gldas.fd/parm gldas + if [ -d ../sorc/gldas.fd ]; then + [[ -d gldas ]] && rm -rf gldas + $LINK ../sorc/gldas.fd/parm gldas + fi cd ${pwd}/../parm/post ||exit 8 for file in postxconfig-NT-GEFS-ANL.txt postxconfig-NT-GEFS-F00.txt postxconfig-NT-GEFS.txt postxconfig-NT-GFS-ANL.txt \ postxconfig-NT-GFS-F00-TWO.txt postxconfig-NT-GFS-F00.txt postxconfig-NT-GFS-FLUX-F00.txt postxconfig-NT-GFS-FLUX.txt \ @@ -104,15 +108,19 @@ cd ${pwd}/../parm/post ||exit 8 done cd ${pwd}/../scripts ||exit 8 $LINK ../sorc/ufs_utils.fd/scripts/exemcsfc_global_sfc_prep.sh . - $LINK ../sorc/gldas.fd/scripts/exgdas_atmos_gldas.sh . + if [ -d ../sorc/gldas.fd ]; then + $LINK ../sorc/gldas.fd/scripts/exgdas_atmos_gldas.sh . + fi cd ${pwd}/../ush ||exit 8 for file in emcsfc_ice_blend.sh fv3gfs_driver_grid.sh fv3gfs_make_orog.sh global_cycle_driver.sh \ emcsfc_snow.sh fv3gfs_filter_topo.sh global_cycle.sh fv3gfs_make_grid.sh ; do $LINK ../sorc/ufs_utils.fd/ush/$file . done - for file in gldas_archive.sh gldas_forcing.sh gldas_get_data.sh gldas_process_data.sh gldas_liscrd.sh gldas_post.sh ; do + if [ -d ../sorc/gldas.fd ]; then + for file in gldas_archive.sh gldas_forcing.sh gldas_get_data.sh gldas_process_data.sh gldas_liscrd.sh gldas_post.sh ; do $LINK ../sorc/gldas.fd/ush/$file . - done + done + fi #----------------------------------- @@ -137,29 +145,43 @@ fi #------------------------------ #--add GSI fix directory #------------------------------ -cd ${pwd}/../fix ||exit 8 +if [ -d ../sorc/gsi_enkf.fd ]; then + cd ${pwd}/../fix ||exit 8 [[ -d fix_gsi ]] && rm -rf fix_gsi $LINK ../sorc/gsi_enkf.fd/fix fix_gsi +fi +#------------------------------ +#--add GDASApp fix directory +#------------------------------ +if [ -d ../sorc/gdas.cd ]; then + cd ${pwd}/../fix ||exit 8 + [[ -d fix_gdas ]] && rm -rf fix_gdas + $LINK $FIX_DIR/fix_gdas . +fi #------------------------------ #--add GDASApp files #------------------------------ -cd ${pwd}/../jobs ||exit 8 +if [ -d ../sorc/gdas.cd ]; then + cd ${pwd}/../jobs ||exit 8 $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP . $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN . $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST . $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP . $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN . $LINK ../sorc/gdas.cd/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST . -cd ${pwd}/../ush ||exit 8 + cd ${pwd}/../ush ||exit 8 $LINK ../sorc/gdas.cd/ush/ufsda . +fi #------------------------------ #--add DA Monitor file (NOTE: ensure to use correct version) #------------------------------ -cd ${pwd}/../fix ||exit 8 +if [ -d ../sorc/gsi_monitor.fd ]; then + + cd ${pwd}/../fix ||exit 8 [[ -d gdas ]] && rm -rf gdas mkdir -p gdas cd gdas @@ -170,12 +192,12 @@ cd ${pwd}/../fix ||exit 8 $LINK ../../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_base.tar . $LINK ../../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_satype.txt . $LINK ../../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_scaninfo.txt . -cd ${pwd}/../jobs ||exit 8 + cd ${pwd}/../jobs ||exit 8 $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gdas/jobs/JGDAS_ATMOS_VMINMON . $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/jobs/JGFS_ATMOS_VMINMON . $LINK ../sorc/gsi_monitor.fd/src/Ozone_Monitor/nwprod/gdas_oznmon/jobs/JGDAS_ATMOS_VERFOZN . $LINK ../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/jobs/JGDAS_ATMOS_VERFRAD . -cd ${pwd}/../parm ||exit 8 + cd ${pwd}/../parm ||exit 8 [[ -d mon ]] && rm -rf mon mkdir -p mon cd mon @@ -184,12 +206,12 @@ cd ${pwd}/../parm ||exit 8 # $LINK ../../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/parm/gfs_minmon.parm . $LINK ../../sorc/gsi_monitor.fd/src/Ozone_Monitor/nwprod/gdas_oznmon/parm/gdas_oznmon.parm . # $LINK ../../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/parm/gdas_radmon.parm . -cd ${pwd}/../scripts ||exit 8 + cd ${pwd}/../scripts ||exit 8 $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gdas/scripts/exgdas_atmos_vminmon.sh . $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/scripts/exgfs_atmos_vminmon.sh . $LINK ../sorc/gsi_monitor.fd/src/Ozone_Monitor/nwprod/gdas_oznmon/scripts/exgdas_atmos_verfozn.sh . $LINK ../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/scripts/exgdas_atmos_verfrad.sh . -cd ${pwd}/../ush ||exit 8 + cd ${pwd}/../ush ||exit 8 $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/minmon_shared/ush/minmon_xtrct_costs.pl . $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/minmon_shared/ush/minmon_xtrct_gnorms.pl . $LINK ../sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/minmon_shared/ush/minmon_xtrct_reduct.pl . @@ -199,6 +221,7 @@ cd ${pwd}/../ush ||exit 8 $LINK ../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/ush/radmon_verf_bcoef.sh . $LINK ../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/ush/radmon_verf_bcor.sh . $LINK ../sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/ush/radmon_verf_time.sh . +fi #------------------------------ @@ -244,101 +267,120 @@ for ufs_utilsexe in \ done # GSI -for exe in enkf.x gsi.x; do +if [ -d ../sorc/gsi_enkf.fd ]; then + for exe in enkf.x gsi.x; do [[ -s $exe ]] && rm -f $exe $LINK ../sorc/gsi_enkf.fd/install/bin/$exe . -done + done +fi # GSI Utils -for exe in calc_analysis.x calc_increment_ens_ncio.x calc_increment_ens.x \ +if [ -d ../sorc/gsi_utils.fd ]; then + for exe in calc_analysis.x calc_increment_ens_ncio.x calc_increment_ens.x \ getsfcensmeanp.x getsigensmeanp_smooth.x getsigensstatp.x \ interp_inc.x recentersigp.x;do [[ -s $exe ]] && rm -f $exe $LINK ../sorc/gsi_utils.fd/install/bin/$exe . -done + done +fi # GSI Monitor -for exe in oznmon_horiz.x oznmon_time.x radmon_angle.x \ +if [ -d ../sorc/gsi_monitor.fd ]; then + for exe in oznmon_horiz.x oznmon_time.x radmon_angle.x \ radmon_bcoef.x radmon_bcor.x radmon_time.x; do [[ -s $exe ]] && rm -f $exe $LINK ../sorc/gsi_monitor.fd/install/bin/$exe . -done + done +fi -for gldasexe in gdas2gldas gldas2gdas gldas_forcing gldas_model gldas_post gldas_rst; do +if [ -d ../sorc/gldas.fd ]; then + for gldasexe in gdas2gldas gldas2gdas gldas_forcing gldas_model gldas_post gldas_rst; do [[ -s $gldasexe ]] && rm -f $gldasexe $LINK ../sorc/gldas.fd/exec/$gldasexe . -done + done +fi # GDASApp -for gdasexe in fv3jedi_addincrement.x fv3jedi_diffstates.x fv3jedi_ensvariance.x fv3jedi_hofx.x \ +if [ -d ../sorc/gdas.cd ]; then + for gdasexe in fv3jedi_addincrement.x fv3jedi_diffstates.x fv3jedi_ensvariance.x fv3jedi_hofx.x \ fv3jedi_var.x fv3jedi_convertincrement.x fv3jedi_dirac.x fv3jedi_error_covariance_training.x \ fv3jedi_letkf.x fv3jedi_convertstate.x fv3jedi_eda.x fv3jedi_forecast.x fv3jedi_plot_field.x \ fv3jedi_data_checker.py fv3jedi_enshofx.x fv3jedi_hofx_nomodel.x fv3jedi_testdata_downloader.py; do [[ -s $gdasexe ]] && rm -f $gdasexe $LINK ../sorc/gdas.cd/build/bin/$gdasexe . -done + done +fi #------------------------------ #--link source code directories #------------------------------ cd ${pwd}/../sorc || exit 8 - [[ -d gsi.fd ]] && rm -rf gsi.fd - $SLINK gsi_enkf.fd/src/gsi gsi.fd + if [ -d gsi_enkf.fd ]; then + [[ -d gsi.fd ]] && rm -rf gsi.fd + $SLINK gsi_enkf.fd/src/gsi gsi.fd - [[ -d enkf.fd ]] && rm -rf enkf.fd - $SLINK gsi_enkf.fd/src/enkf enkf.fd + [[ -d enkf.fd ]] && rm -rf enkf.fd + $SLINK gsi_enkf.fd/src/enkf enkf.fd + fi - [[ -d calc_analysis.fd ]] && rm -rf calc_analysis.fd - $SLINK gsi_utils.fd/src/netcdf_io/calc_analysis.fd calc_analysis.fd + if [ -d gsi_utils.fd ]; then + [[ -d calc_analysis.fd ]] && rm -rf calc_analysis.fd + $SLINK gsi_utils.fd/src/netcdf_io/calc_analysis.fd calc_analysis.fd - [[ -d calc_increment_ens.fd ]] && rm -rf calc_increment_ens.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/calc_increment_ens.fd calc_increment_ens.fd + [[ -d calc_increment_ens.fd ]] && rm -rf calc_increment_ens.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/calc_increment_ens.fd calc_increment_ens.fd - [[ -d calc_increment_ens_ncio.fd ]] && rm -rf calc_increment_ens_ncio.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/calc_increment_ens_ncio.fd calc_increment_ens_ncio.fd + [[ -d calc_increment_ens_ncio.fd ]] && rm -rf calc_increment_ens_ncio.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/calc_increment_ens_ncio.fd calc_increment_ens_ncio.fd - [[ -d getsfcensmeanp.fd ]] && rm -rf getsfcensmeanp.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsfcensmeanp.fd getsfcensmeanp.fd + [[ -d getsfcensmeanp.fd ]] && rm -rf getsfcensmeanp.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsfcensmeanp.fd getsfcensmeanp.fd - [[ -d getsigensmeanp_smooth.fd ]] && rm -rf getsigensmeanp_smooth.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsigensmeanp_smooth.fd getsigensmeanp_smooth.fd + [[ -d getsigensmeanp_smooth.fd ]] && rm -rf getsigensmeanp_smooth.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsigensmeanp_smooth.fd getsigensmeanp_smooth.fd - [[ -d getsigensstatp.fd ]] && rm -rf getsigensstatp.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsigensstatp.fd getsigensstatp.fd + [[ -d getsigensstatp.fd ]] && rm -rf getsigensstatp.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/getsigensstatp.fd getsigensstatp.fd - [[ -d recentersigp.fd ]] && rm -rf recentersigp.fd - $SLINK gsi_utils.fd/src/EnKF/gfs/src/recentersigp.fd recentersigp.fd + [[ -d recentersigp.fd ]] && rm -rf recentersigp.fd + $SLINK gsi_utils.fd/src/EnKF/gfs/src/recentersigp.fd recentersigp.fd - [[ -d interp_inc.fd ]] && rm -rf interp_inc.fd - $SLINK gsi_utils.fd/src/netcdf_io/interp_inc.fd interp_inc.fd + [[ -d interp_inc.fd ]] && rm -rf interp_inc.fd + $SLINK gsi_utils.fd/src/netcdf_io/interp_inc.fd interp_inc.fd + fi - [[ -d oznmon_horiz.fd ]] && rm -rf oznmon_horiz.fd - $SLINK gsi_monitor.fd/src/Ozone_Monitor/nwprod/oznmon_shared/sorc/oznmon_horiz.fd oznmon_horiz.fd + if [ -d gsi_monitor.fd ] ; then + [[ -d oznmon_horiz.fd ]] && rm -rf oznmon_horiz.fd + $SLINK gsi_monitor.fd/src/Ozone_Monitor/nwprod/oznmon_shared/sorc/oznmon_horiz.fd oznmon_horiz.fd - [[ -d oznmon_time.fd ]] && rm -rf oznmon_time.fd - $SLINK gsi_monitor.fd/src/Ozone_Monitor/nwprod/oznmon_shared/sorc/oznmon_time.fd oznmon_time.fd + [[ -d oznmon_time.fd ]] && rm -rf oznmon_time.fd + $SLINK gsi_monitor.fd/src/Ozone_Monitor/nwprod/oznmon_shared/sorc/oznmon_time.fd oznmon_time.fd - [[ -d radmon_angle.fd ]] && rm -rf radmon_angle.fd - $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radang.fd radmon_angle.fd + [[ -d radmon_angle.fd ]] && rm -rf radmon_angle.fd + $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radang.fd radmon_angle.fd - [[ -d radmon_bcoef.fd ]] && rm -rf radmon_bcoef.fd - $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radbcoef.fd radmon_bcoef.fd + [[ -d radmon_bcoef.fd ]] && rm -rf radmon_bcoef.fd + $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radbcoef.fd radmon_bcoef.fd - [[ -d radmon_bcor.fd ]] && rm -rf radmon_bcor.fd - $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radbcor.fd radmon_bcor.fd + [[ -d radmon_bcor.fd ]] && rm -rf radmon_bcor.fd + $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radbcor.fd radmon_bcor.fd - [[ -d radmon_time.fd ]] && rm -rf radmon_time.fd - $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radtime.fd radmon_time.fd + [[ -d radmon_time.fd ]] && rm -rf radmon_time.fd + $SLINK gsi_monitor.fd/src/Radiance_Monitor/nwprod/radmon_shared/sorc/verf_radtime.fd radmon_time.fd + fi + [[ -d gfs_ncep_post.fd ]] && rm -rf gfs_ncep_post.fd $SLINK upp.fd/sorc/ncep_post.fd gfs_ncep_post.fd for prog in fregrid make_hgrid make_solo_mosaic ; do + [[ -d ${prog}.fd ]] && rm -rf ${prog}.fd $SLINK ufs_utils.fd/sorc/fre-nctools.fd/tools/$prog ${prog}.fd done for prog in global_cycle.fd \ emcsfc_ice_blend.fd \ emcsfc_snow2mdl.fd ;do + [[ -d $prog ]] && rm -rf $prog $SLINK ufs_utils.fd/sorc/$prog $prog done @@ -354,9 +396,12 @@ cd ${pwd}/../sorc || exit 8 $SLINK gfs_wafs.fd/sorc/wafs_setmissing.fd wafs_setmissing.fd fi - for prog in gdas2gldas.fd gldas2gdas.fd gldas_forcing.fd gldas_model.fd gldas_post.fd gldas_rst.fd ;do + if [ -d gldas.fd ]; then + for prog in gdas2gldas.fd gldas2gdas.fd gldas_forcing.fd gldas_model.fd gldas_post.fd gldas_rst.fd ;do + [[ -d $prog ]] && rm -rf $prog $SLINK gldas.fd/sorc/$prog $prog - done + done + fi #------------------------------ # copy $HOMEgfs/parm/config/config.base.nco.static as config.base for operations