From 2fa0424702025eda2f43b1451b11589e0adbd2b4 Mon Sep 17 00:00:00 2001 From: BenjaminBlake-NOAA <52074832+BenjaminBlake-NOAA@users.noreply.github.com> Date: Mon, 30 Sep 2019 12:49:13 -0400 Subject: [PATCH] Final set of changes for port to Hera (#112) * chgres cube and second set of changes for port to Hera * input and model configure files for AK/Guam/PR * Final set of changes for port to Hera * Update wcoss_dell_p3.ent --- Externals.cfg | 10 +- jobs/JREGIONAL_MAKE_BC | 119 +----- jobs/JREGIONAL_MAKE_IC | 21 +- modulefiles/theia/fv3 | 43 --- modulefiles/theia/regional | 47 --- parm/input_sar_ak.nml | 284 ++++++++++++++ parm/input_sar_conus.nml | 2 +- parm/input_sar_guam.nml | 284 ++++++++++++++ parm/input_sar_pr.nml | 284 ++++++++++++++ parm/model_configure_sar.tmp_ak | 58 +++ parm/model_configure_sar.tmp_conus | 4 +- parm/model_configure_sar.tmp_guam | 58 +++ parm/model_configure_sar.tmp_pr | 58 +++ rocoto/regional_workflow.xml.in | 1 - rocoto/rocoto_pre_job.sh | 2 - rocoto/run_regional_hera.sh | 6 +- rocoto/run_regional_theia.sh | 62 --- rocoto/sites/hera.ent | 20 +- rocoto/sites/theia.ent | 54 --- rocoto/sites/wcoss_cray.ent | 2 +- rocoto/sites/wcoss_dell_p3.ent | 10 +- scripts/exregional_forecast.sh | 9 +- scripts/exregional_make_bc.sh | 100 +++++ scripts/exregional_make_ic.sh | 87 +++++ scripts/exregional_make_ic_bc.sh | 1 - scripts/exregional_make_ic_bc_new.sh | 550 --------------------------- sorc/build_forecast.sh | 1 - sorc/checkout.sh | 38 +- sorc/link_fix.sh | 5 - sorc/machine-setup.sh | 18 +- ush/regional_chgres.sh | 543 -------------------------- ush/run_commands_bc.sh | 2 +- ush/run_commands_forecast.sh | 2 +- 33 files changed, 1283 insertions(+), 1502 deletions(-) delete mode 100644 modulefiles/theia/fv3 delete mode 100644 modulefiles/theia/regional create mode 100644 parm/input_sar_ak.nml create mode 100644 parm/input_sar_guam.nml create mode 100644 parm/input_sar_pr.nml create mode 100644 parm/model_configure_sar.tmp_ak create mode 100644 parm/model_configure_sar.tmp_guam create mode 100644 parm/model_configure_sar.tmp_pr delete mode 100755 rocoto/run_regional_theia.sh delete mode 100644 rocoto/sites/theia.ent create mode 100755 scripts/exregional_make_bc.sh create mode 100755 scripts/exregional_make_ic.sh delete mode 120000 scripts/exregional_make_ic_bc.sh delete mode 100755 scripts/exregional_make_ic_bc_new.sh delete mode 100755 ush/regional_chgres.sh diff --git a/Externals.cfg b/Externals.cfg index 05c6e377d..e3477b386 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,12 +1,12 @@ [ufs_utils] -branch = feature/HAFS +branch = support/regional protocol = git -repo_url = gerrit:UFS_UTILS +repo_url = https://github.com/hafs-community/UFS_UTILS.git local_path = sorc/regional_utils.fd required = True [nemsfv3gfs] -branch = regional +branch = develop protocol = git repo_url = gerrit:NEMSfv3gfs local_path = sorc/regional_forecast.fd @@ -20,9 +20,9 @@ local_path = sorc/regional_gsi.fd required = True [post] -branch = regional +branch = support/regional protocol = git -repo_url = gerrit:EMC_post +repo_url = https://github.com/hafs-community/EMC_post.git local_path = sorc/regional_post.fd required = True diff --git a/jobs/JREGIONAL_MAKE_BC b/jobs/JREGIONAL_MAKE_BC index c293986a1..0316d8c6e 100755 --- a/jobs/JREGIONAL_MAKE_BC +++ b/jobs/JREGIONAL_MAKE_BC @@ -7,9 +7,7 @@ set -xe #################################### # Specify Execution Areas #################################### -export CHGRESEXEC=$EXECfv3/regional_chgres.x -export CHGRESSH=$USHfv3/regional_chgres.sh -export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh +export CHGRESEXEC=$EXECfv3/regional_chgres_cube.x #################################### # Run setpdy and initialize PDY variables @@ -18,6 +16,9 @@ export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh #setpdy.sh #. ./PDY +export month=`echo $CDATE | cut -c 5-6` +export day=`echo $CDATE | cut -c 7-8` + offset=`echo $tmmark | cut -c 3-4` export CYCLEGUESS=`$NDATE -${offset} $CDATE` export CDATE=$CYCLEGUESS @@ -32,9 +33,6 @@ mkdir -p $DATA cd $DATA export BNDYdir=$DATA -export OUTDIR=$DATA/INPUT -mkdir -p $OUTDIR - export pid=$$ export pgmout="OUTPUT.${pid}" export pgmerr=errfile @@ -69,119 +67,20 @@ export LSOIL=4 export REGIONAL=2 # REGIONAL=0 - uniform, stretch, or nest # REGIONAL=1 - generate data and boundary (for regional case) # REGIONAL=2 - generate boundaries only (for regional case) +export HALO=4 export ictype=pfv3gfs export nst_anl=.false. # false or true to include NST analysis export KMP_AFFINITY=disabled -export NTRAC=7 # output all gfdl mp tracers env ##################################### # Generate the BCs ##################################### -if [ -e bcfile.input ]; then - rm -f bcfile.input -fi - -# NHRS = length of free forecast -# NHRSda = length of DA cycle forecast (always 1-h) -if [ $tmmark = tm00 ] ; then - hour=3 - end_hour=$NHRS - hour_inc=3 -else - hour=0 - end_hour=$NHRSda - hour_inc=1 -fi - -while (test "$hour" -le "$end_hour") - do - if [ $hour -lt 10 ]; then - hour_name='00'$hour - elif [ $hour -lt 100 ]; then - hour_name='0'$hour - else - hour_name=$hour - fi - -# -# create input file for cfp in order to run multiple copies of exfv3cam_sar_chgres.sh simultaneously -# since we are going to run simultaneously, we want different working directories for each hour -# - if [ $tmmark = tm00 ] ; then - BC_DATA=${DATA}/wrk.chgres.$hour_name - rm -rf $BC_DATA - mkdir -p $BC_DATA - rm -f chgres_bc_f${hour_name}.sh - echo "#! /bin/sh " > chgres_bc_f${hour_name}.sh - echo "env REGIONAL=2 HALO=4 bchour=$hour_name DATA=$BC_DATA $HOMEfv3/scripts/exregional_make_ic_bc.sh" >> chgres_bc_f${hour_name}.sh - chmod u+x chgres_bc_f${hour_name}.sh - echo APRUNO is $APRUNO - echo "${APRUNO} ./chgres_bc_f${hour_name}.sh > out.chgres.$hour_name 2>&1 ${BACKGROUND}" >> bcfile.input - elif [ $tmmark != tm00 ] ; then -# Run the BC creation sequentially - export HALO=4 - export bchour=$hour_name - $HOMEfv3/scripts/exregional_make_ic_bc.sh - mv $OUTDIR/gfs_bndy.tile7.${bchour}.nc $INPdir/. - err=$? - if [ $err -ne 0 ] ; then - echo "bndy file not created, abort" - err_exit - fi - fi - hour=`expr $hour + $hour_inc` - nhour=`expr $nhour + 1` -done - -# for tm00 we now run BC creation for all hours simultaneously -if [ $tmmark = tm00 ] ; then - -export APRUNC="time" -export OMP_NUM_THREADS_CH=${OMP_NUM_THREADS:-24} - -if [ "$machine" = theia ] || [ "$machine" = jet ]; then - rm -f bcfile.input_new - nline=0 - while [ "$nline" -lt "$nhour" ]; - do - # Take the first $TOTAL_TASKS lines from bcfile.input - sed -n -e "1,${TOTAL_TASKS}p" bcfile.input >> bcfile.input_new - echo 'wait' >> bcfile.input_new - sed -i -e "1,${TOTAL_TASKS}d" bcfile.input - nline=`expr $nline + $TOTAL_TASKS` - done - cp bcfile.input_new bcfile.input - #rm -f bcfile.input_new -fi - -# mpirun cfp bcfile.input - chmod u+x bcfile.input - echo APRUNF is $APRUNF - ls -l bcfile.input - ${APRUNF} ./bcfile.input - wait -#tmp rm -f bcfile.input - - cd $OUTDIR - cat filelist.ges* > $COMOUT/filelist.bndy.${tmmark} - cp gfs_bndy.tile7.*.nc $INPdir/. - cd $BNDYdir - hr=03 - while [ $hr -le $NHRS ] ; do - cat out.chgres.0${hr} - cd wrk.chgres.0${hr} - cat $pgmout - cd $BNDYdir - let "hr=hr+3" - typeset -Z2 hr - done -else - cp filelist.ges $COMOUT/filelist.bndy.${tmmark} -fi - -date +# Execute the script +$HOMEfv3/scripts/exregional_make_bc.sh +export err=$? +##################################### if [ -e $pgmerr ] ; then cat $pgmerr diff --git a/jobs/JREGIONAL_MAKE_IC b/jobs/JREGIONAL_MAKE_IC index 72b53ef24..f94419125 100755 --- a/jobs/JREGIONAL_MAKE_IC +++ b/jobs/JREGIONAL_MAKE_IC @@ -2,14 +2,12 @@ set -xe . $HOMEfv3/jobs/JREGIONAL_ENVIR -. $USHfv3/run_commands_forecast.sh +. $USHfv3/run_commands_bc.sh #################################### # Specify Execution Areas #################################### -export CHGRESEXEC=$EXECfv3/regional_chgres.x -export CHGRESSH=$USHfv3/regional_chgres.sh -export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh +export CHGRESEXEC=$EXECfv3/regional_chgres_cube.x #################################### # Run setpdy and initialize PDY variables @@ -18,6 +16,9 @@ export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh #setpdy.sh #. ./PDY +export month=`echo $CDATE | cut -c 5-6` +export day=`echo $CDATE | cut -c 7-8` + export CYCLEguess=`$NDATE -12 $CDATE` export ymd=`echo $CDATE | cut -c 1-8` export hhcyc=`echo $CDATE | cut -c 9-10` @@ -31,9 +32,6 @@ export DATA=${DATA:-${STMP}/tmpnwprd/${job}} mkdir -p $DATA cd $DATA -export OUTDIR=$DATA/INPUT -mkdir -p $OUTDIR - export pid=$$ export pgmout="OUTPUT.${pid}" export pgmerr=errfile @@ -73,7 +71,6 @@ export HALO=4 export ictype=pfv3gfs export nst_anl=.false. # false or true to include NST analysis export KMP_AFFINITY=disabled -export NTRAC=7 # output all gfdl mp tracers env @@ -81,12 +78,10 @@ env # Generate the ICs and BC hour 0 ##################################### # Execute the script. -${HOMEfv3}/scripts/exregional_make_ic_bc.sh +${HOMEfv3}/scripts/exregional_make_ic.sh export err=$? ##################################### -mv $OUTDIR/gfs*nc $INPdir/. -mv $OUTDIR/sfc*nc $INPdir/. ##################################### # Generate BCs for NHRSguess for SAR-DA @@ -108,9 +103,7 @@ if [ $tmmark = tm12 ] ; then fi export bchour=$hour_name - ${HOMEfv3}/scripts/exregional_make_ic_bc.sh - - mv $OUTDIR/gfs_bndy.tile7.${bchour}.nc $INPdir/. + ${HOMEfv3}/scripts/exregional_make_ic.sh err=$? if [ $err -ne 0 ] ; then diff --git a/modulefiles/theia/fv3 b/modulefiles/theia/fv3 deleted file mode 100644 index ccf6e1765..000000000 --- a/modulefiles/theia/fv3 +++ /dev/null @@ -1,43 +0,0 @@ -#%Module###################################################################### -## -## NEMS FV3 Prerequisites: Theia/Intel - -proc ModulesHelp {} { - puts stderr "\tcit - loads modules required for building and running FV3 under NEMS on Theia/Intel" -} - -module-whatis "loads NEMS FV3 prerequisites for Theia/Intel" - -# NOTE: the "module purge" and loading of the module command are -# handled by the module-setup.sh (or .csh) script. - -## -## load programming environment -## this typically includes compiler, MPI and job scheduler -## -module load intel/18.0.1.163 -module load impi/5.1.2.150 -module load netcdf/4.3.0 -module load pnetcdf/1.5.0-impi - -## -## NCEP libraries (temporary version to match the CCPP requirements) -## -module use -a /scratch3/NCEPDEV/nwprod/NCEPLIBS_CCPP/modulefiles -module load bacio/9.9.9 -module load ip/9.9.9 -module load nemsio/9.9.9 -module load sp/2.0.2 -module load w3emc/9.9.9 -module load w3nco/9.9.9 - -## -## use pre-compiled EMSF library for above compiler / MPI combination -## -module use -a /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles -module load esmf/8.0.0bs21-intel18 - -module load prod_util/1.0.18 -module load rocoto/1.3.1 - -module list diff --git a/modulefiles/theia/regional b/modulefiles/theia/regional deleted file mode 100644 index 9dc2cf0c6..000000000 --- a/modulefiles/theia/regional +++ /dev/null @@ -1,47 +0,0 @@ -#%Module##################################################### -## Module file for regional workflow -############################################################# -proc ModulesHelp { } { - puts stderr "Set environment veriables for compiling or running regional workflow" -} -module-whatis " regional workflow prerequisites" - -module use /scratch3/NCEPDEV/nwprod/lib/modulefiles -module use /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles - -module load intel -module load impi -#module load nco - -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 - -module load g2/v2.5.0 -module load w3emc/v2.0.5 -module load w3nco/v2.0.6 -module load sp/v2.0.2 -module load ip/v2.0.0 -module load bufr/v10.2.5 -module load bacio/v2.0.1 -module load sigio/v2.0.1 -module load sfcio/v1.0.0 -module load nemsio/v2.2.2 -module load nemsiogfs/v2.0.1 - -module load hpss/hpss - -module load szip -module load netcdf/4.3.0 -module load hdf5/1.8.14 - -module load prod_util/1.0.18 -#Use wgrib2 v2.0.8 -#module load wgrib2/2.0.8 # This version does not work -setenv WGRIB2 /home/Wesley.Ebisuzaki/bin/wgrib.v2.0.8b3 -setenv GRB2INDEX /scratch3/NCEPDEV/hwrf/save/Bin.Liu/hwrftrunk2019/nwport/util/exec/grb2index - -module load rocoto/1.3.1 -module load crtm/v2.2.3 - -module list diff --git a/parm/input_sar_ak.nml b/parm/input_sar_ak.nml new file mode 100644 index 000000000..81d070908 --- /dev/null +++ b/parm/input_sar_ak.nml @@ -0,0 +1,284 @@ + &amip_interp_nml + interp_oi_sst = .true. + use_ncep_sst = .true. + use_ncep_ice = .false. + no_anom_sst = .false. + data_set = 'reynolds_oi', + date_out_of_range = 'climo', +/ + + &atmos_model_nml + blocksize = 24 + chksum_debug = .false. + dycore_only = .false. + fdiag = 1 + avg_max_length = 3600. +/ + +&diag_manager_nml + prepend_date = .false. +/ + + &fms_io_nml + checksum_required = .false. + max_files_r = 100, + max_files_w = 100, +/ + + &fms_nml + clock_grain = 'ROUTINE', + domains_stack_size = 1800200, + print_memory_usage = .false. +/ + + &fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + layout = 14,48 + io_layout = 1,1 + npx = 1345 + npy = 1153 + ntiles = 1, + npz = 64 +! grid_type = -1 + make_nh = .T. + fv_debug = .F. + range_warn = .F. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + tau = 5. + rf_cutoff = 20.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.04 + kord_tm = -11 + kord_mt = 11 + kord_wz = 11 + kord_tr = 11 + hydrostatic = .F. + phys_hydrostatic = .F. + use_hydro_pressure = .F. + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = 6 + n_split = 6 + nwat = 6 + na_init = 1 + d_ext = 0.0 + dnats = 1 + fv_sg_adj = 300 + d2_bg = 0. + nord = 2 + dddmp = 0.1 + d4_bg = 0.15 + vtdm4 = 0.075 + delt_max = 0.008 + ke_bg = 0. + do_vort_damp = .true. + external_ic = .T. + external_eta = .T. + gfs_phil = .false. + nggps_ic = .T. + mountain = .F. + ncep_ic = .F. + d_con = 1.0 + hord_mt = 6 + hord_vt = 6 + hord_tm = 6 + hord_dp = -6 + hord_tr = 8 + adjust_dry_mass = .F. + consv_te = 0. + do_sat_adj = .T. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 6 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + + do_schmidt = .true. + target_lat = 61.0 + target_lon = -153.0 + stretch_fac = 1.5 + regional = .true. + bc_update_interval = 3 + agrid_vel_rst = .false. + + full_zs_filter = .F. !unreleased feature + + nord_zs_filter = 4 + n_zs_filter = 0 ! safety +/ + +&surf_map_nml + zero_ocean = .F. + cd4 = 0.12 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 2 + n_del4 = 1 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = 65 + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 1. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 24. + nst_anl = .true. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 11 + pdfcld = .false. + fhswr = 3600. + fhlwr = 3600. + ialb = 1 + iems = 1 + IAER = 111 + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .false. + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + random_clds = .false. + trans_trac = .true. + cnvcld = .false. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.01 ! NCEP default + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + debug = .false. + nstf_name = 2,0,0,0,0 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + shal_cnv = .false. !Shallow convection + do_deep = .false. + lgfdlmprad = .true. + effr_in = .true. +/ + + &gfdl_cloud_microphysics_nml + sedi_transport = .false. + do_sedi_heat = .false. + rad_snow = .true. + rad_graupel = .true. + rad_rain = .true. + const_vi = .F. + const_vs = .F. + const_vg = .F. + const_vr = .F. + vi_max = 1. + vs_max = 2. + vg_max = 12. + vr_max = 12. + qi_lim = 1. + prog_ccn = .false. + do_qa = .true. + fast_sat_adj = .true. + tau_l2v = 180. + tau_v2l = 90. + tau_g2v = 900. + rthresh = 10.e-6 ! This is a key parameter for cloud water + dw_land = 0.16 + dw_ocean = 0.10 + ql_gen = 1.0e-3 + ql_mlt = 1.0e-3 + qi0_crt = 8.0E-5 + qs0_crt = 1.0e-3 + tau_i2s = 1000. + c_psaci = 0.05 + c_pgacs = 0.01 + rh_inc = 0.30 + rh_inr = 0.30 + rh_ins = 0.30 + ccn_l = 300. + ccn_o = 100. + c_paut = 0.5 + c_cracw = 0.8 + use_ppm = .false. + use_ccn = .true. + mono_prof = .true. + z_slope_liq = .true. + z_slope_ice = .true. + de_ice = .false. + fix_negative = .true. + icloud_f = 1 + mp_time = 90. +/ + &interpolator_nml + interp_method = 'conserve_great_circle' +/ + +&namsfc + FNALBC2 = "C768.facsf.tileX.nc", + FNALBC = "C768.snowfree_albedo.tileX.nc", + FNTG3C = "C768.substrate_temperature.tileX.nc", + FNVEGC = "C768.vegetation_greenness.tileX.nc", + FNVETC = "C768.vegetation_type.tileX.nc", + FNSOTC = "C768.soil_type.tileX.nc", + FNVMNC = "C768.vegetation_greenness.tileX.nc", + FNVMXC = "C768.vegetation_greenness.tileX.nc", + FNSLPC = "C768.slope_type.tileX.nc", + FNABSC = "C768.maximum_snow_albedo.tileX.nc", + FNGLAC = "global_glacier.2x2.grb", + FNMXIC = "global_maxice.2x2.grb", + FNTSFC = "RTGSST.1982.2012.monthly.clim.grb", + FNSNOC = "global_snoclim.1.875.grb", + FNZORC = "igbp" + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + LDEBUG =.true., + FSMCL(2) = 99999 + FSMCL(3) = 99999 + FSMCL(4) = 99999 + FTSFS = 90 + FAISS = 99999 + FSNOL = 99999 + FSICL = 99999 + FTSFL = 99999, + FAISL = 99999, + FVETL = 99999, + FSOTL = 99999, + FvmnL = 99999, + FvmxL = 99999, + FSLPL = 99999, + FABSL = 99999, + FSNOS = 99999, + FSICS = 99999, +/ +&nam_stochy +/ +&nam_sfcperts +/ diff --git a/parm/input_sar_conus.nml b/parm/input_sar_conus.nml index 718817108..02f1352d7 100755 --- a/parm/input_sar_conus.nml +++ b/parm/input_sar_conus.nml @@ -36,7 +36,7 @@ / &fv_core_nml - layout = 16,48 + layout = _TASK_X_,_TASK_Y_ io_layout = 1,1 npx = 1921 npy = 1297 diff --git a/parm/input_sar_guam.nml b/parm/input_sar_guam.nml new file mode 100644 index 000000000..f77080444 --- /dev/null +++ b/parm/input_sar_guam.nml @@ -0,0 +1,284 @@ + &amip_interp_nml + interp_oi_sst = .true. + use_ncep_sst = .true. + use_ncep_ice = .false. + no_anom_sst = .false. + data_set = 'reynolds_oi', + date_out_of_range = 'climo', +/ + + &atmos_model_nml + blocksize = 24 + chksum_debug = .false. + dycore_only = .false. + fdiag = 1 + avg_max_length = 3600. +/ + +&diag_manager_nml + prepend_date = .false. +/ + + &fms_io_nml + checksum_required = .false. + max_files_r = 100, + max_files_w = 100, +/ + + &fms_nml + clock_grain = 'ROUTINE', + domains_stack_size = 1800200, + print_memory_usage = .false. +/ + + &fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + layout = 6,10 + io_layout = 1,1 + npx = 433 + npy = 361 + ntiles = 1, + npz = 64 +! grid_type = -1 + make_nh = .T. + fv_debug = .F. + range_warn = .F. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + tau = 5. + rf_cutoff = 20.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.04 + kord_tm = -11 + kord_mt = 11 + kord_wz = 11 + kord_tr = 11 + hydrostatic = .F. + phys_hydrostatic = .F. + use_hydro_pressure = .F. + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = 6 + n_split = 6 + nwat = 6 + na_init = 1 + d_ext = 0.0 + dnats = 1 + fv_sg_adj = 300 + d2_bg = 0. + nord = 2 + dddmp = 0.1 + d4_bg = 0.15 + vtdm4 = 0.075 + delt_max = 0.008 + ke_bg = 0. + do_vort_damp = .true. + external_ic = .T. + external_eta = .T. + gfs_phil = .false. + nggps_ic = .T. + mountain = .F. + ncep_ic = .F. + d_con = 1.0 + hord_mt = 6 + hord_vt = 6 + hord_tm = 6 + hord_dp = -6 + hord_tr = 8 + adjust_dry_mass = .F. + consv_te = 0. + do_sat_adj = .T. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 6 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + + do_schmidt = .true. + target_lat = 15.0 + target_lon = 146.0 + stretch_fac = 1.5 + regional = .true. + bc_update_interval = 3 + agrid_vel_rst = .false. + + full_zs_filter = .F. !unreleased feature + + nord_zs_filter = 4 + n_zs_filter = 0 ! safety +/ + +&surf_map_nml + zero_ocean = .F. + cd4 = 0.12 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 2 + n_del4 = 1 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = 65 + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 1. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 24. + nst_anl = .true. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 11 + pdfcld = .false. + fhswr = 3600. + fhlwr = 3600. + ialb = 1 + iems = 1 + IAER = 111 + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .false. + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + random_clds = .false. + trans_trac = .true. + cnvcld = .false. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.01 ! NCEP default + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + debug = .false. + nstf_name = 2,0,0,0,0 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + shal_cnv = .false. !Shallow convection + do_deep = .false. + lgfdlmprad = .true. + effr_in = .true. +/ + + &gfdl_cloud_microphysics_nml + sedi_transport = .false. + do_sedi_heat = .false. + rad_snow = .true. + rad_graupel = .true. + rad_rain = .true. + const_vi = .F. + const_vs = .F. + const_vg = .F. + const_vr = .F. + vi_max = 1. + vs_max = 2. + vg_max = 12. + vr_max = 12. + qi_lim = 1. + prog_ccn = .false. + do_qa = .true. + fast_sat_adj = .true. + tau_l2v = 180. + tau_v2l = 90. + tau_g2v = 900. + rthresh = 10.e-6 ! This is a key parameter for cloud water + dw_land = 0.16 + dw_ocean = 0.10 + ql_gen = 1.0e-3 + ql_mlt = 1.0e-3 + qi0_crt = 8.0E-5 + qs0_crt = 1.0e-3 + tau_i2s = 1000. + c_psaci = 0.05 + c_pgacs = 0.01 + rh_inc = 0.30 + rh_inr = 0.30 + rh_ins = 0.30 + ccn_l = 300. + ccn_o = 100. + c_paut = 0.5 + c_cracw = 0.8 + use_ppm = .false. + use_ccn = .true. + mono_prof = .true. + z_slope_liq = .true. + z_slope_ice = .true. + de_ice = .false. + fix_negative = .true. + icloud_f = 1 + mp_time = 90. +/ + &interpolator_nml + interp_method = 'conserve_great_circle' +/ + +&namsfc + FNALBC2 = "C768.facsf.tileX.nc", + FNALBC = "C768.snowfree_albedo.tileX.nc", + FNTG3C = "C768.substrate_temperature.tileX.nc", + FNVEGC = "C768.vegetation_greenness.tileX.nc", + FNVETC = "C768.vegetation_type.tileX.nc", + FNSOTC = "C768.soil_type.tileX.nc", + FNVMNC = "C768.vegetation_greenness.tileX.nc", + FNVMXC = "C768.vegetation_greenness.tileX.nc", + FNSLPC = "C768.slope_type.tileX.nc", + FNABSC = "C768.maximum_snow_albedo.tileX.nc", + FNGLAC = "global_glacier.2x2.grb", + FNMXIC = "global_maxice.2x2.grb", + FNTSFC = "RTGSST.1982.2012.monthly.clim.grb", + FNSNOC = "global_snoclim.1.875.grb", + FNZORC = "igbp" + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + LDEBUG =.true., + FSMCL(2) = 99999 + FSMCL(3) = 99999 + FSMCL(4) = 99999 + FTSFS = 90 + FAISS = 99999 + FSNOL = 99999 + FSICL = 99999 + FTSFL = 99999, + FAISL = 99999, + FVETL = 99999, + FSOTL = 99999, + FvmnL = 99999, + FvmxL = 99999, + FSLPL = 99999, + FABSL = 99999, + FSNOS = 99999, + FSICS = 99999, +/ +&nam_stochy +/ +&nam_sfcperts +/ diff --git a/parm/input_sar_pr.nml b/parm/input_sar_pr.nml new file mode 100644 index 000000000..dcd20bf3f --- /dev/null +++ b/parm/input_sar_pr.nml @@ -0,0 +1,284 @@ + &amip_interp_nml + interp_oi_sst = .true. + use_ncep_sst = .true. + use_ncep_ice = .false. + no_anom_sst = .false. + data_set = 'reynolds_oi', + date_out_of_range = 'climo', +/ + + &atmos_model_nml + blocksize = 24 + chksum_debug = .false. + dycore_only = .false. + fdiag = 1 + avg_max_length = 3600. +/ + +&diag_manager_nml + prepend_date = .false. +/ + + &fms_io_nml + checksum_required = .false. + max_files_r = 100, + max_files_w = 100, +/ + + &fms_nml + clock_grain = 'ROUTINE', + domains_stack_size = 1800200, + print_memory_usage = .false. +/ + + &fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + layout = 8,12 + io_layout = 1,1 + npx = 577 + npy = 433 + ntiles = 1, + npz = 64 +! grid_type = -1 + make_nh = .T. + fv_debug = .F. + range_warn = .F. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + tau = 5. + rf_cutoff = 20.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.04 + kord_tm = -11 + kord_mt = 11 + kord_wz = 11 + kord_tr = 11 + hydrostatic = .F. + phys_hydrostatic = .F. + use_hydro_pressure = .F. + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = 6 + n_split = 6 + nwat = 6 + na_init = 1 + d_ext = 0.0 + dnats = 1 + fv_sg_adj = 300 + d2_bg = 0. + nord = 2 + dddmp = 0.1 + d4_bg = 0.15 + vtdm4 = 0.075 + delt_max = 0.008 + ke_bg = 0. + do_vort_damp = .true. + external_ic = .T. + external_eta = .T. + gfs_phil = .false. + nggps_ic = .T. + mountain = .F. + ncep_ic = .F. + d_con = 1.0 + hord_mt = 6 + hord_vt = 6 + hord_tm = 6 + hord_dp = -6 + hord_tr = 8 + adjust_dry_mass = .F. + consv_te = 0. + do_sat_adj = .T. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 6 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + + do_schmidt = .true. + target_lat = 18.0 + target_lon = -69.0 + stretch_fac = 1.5 + regional = .true. + bc_update_interval = 3 + agrid_vel_rst = .false. + + full_zs_filter = .F. !unreleased feature + + nord_zs_filter = 4 + n_zs_filter = 0 ! safety +/ + +&surf_map_nml + zero_ocean = .F. + cd4 = 0.12 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 2 + n_del4 = 1 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = 65 + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 1. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 24. + nst_anl = .true. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 11 + pdfcld = .false. + fhswr = 3600. + fhlwr = 3600. + ialb = 1 + iems = 1 + IAER = 111 + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .false. + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + random_clds = .false. + trans_trac = .true. + cnvcld = .false. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.01 ! NCEP default + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + debug = .false. + nstf_name = 2,0,0,0,0 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + shal_cnv = .false. !Shallow convection + do_deep = .false. + lgfdlmprad = .true. + effr_in = .true. +/ + + &gfdl_cloud_microphysics_nml + sedi_transport = .false. + do_sedi_heat = .false. + rad_snow = .true. + rad_graupel = .true. + rad_rain = .true. + const_vi = .F. + const_vs = .F. + const_vg = .F. + const_vr = .F. + vi_max = 1. + vs_max = 2. + vg_max = 12. + vr_max = 12. + qi_lim = 1. + prog_ccn = .false. + do_qa = .true. + fast_sat_adj = .true. + tau_l2v = 180. + tau_v2l = 90. + tau_g2v = 900. + rthresh = 10.e-6 ! This is a key parameter for cloud water + dw_land = 0.16 + dw_ocean = 0.10 + ql_gen = 1.0e-3 + ql_mlt = 1.0e-3 + qi0_crt = 8.0E-5 + qs0_crt = 1.0e-3 + tau_i2s = 1000. + c_psaci = 0.05 + c_pgacs = 0.01 + rh_inc = 0.30 + rh_inr = 0.30 + rh_ins = 0.30 + ccn_l = 300. + ccn_o = 100. + c_paut = 0.5 + c_cracw = 0.8 + use_ppm = .false. + use_ccn = .true. + mono_prof = .true. + z_slope_liq = .true. + z_slope_ice = .true. + de_ice = .false. + fix_negative = .true. + icloud_f = 1 + mp_time = 90. +/ + &interpolator_nml + interp_method = 'conserve_great_circle' +/ + +&namsfc + FNALBC2 = "C768.facsf.tileX.nc", + FNALBC = "C768.snowfree_albedo.tileX.nc", + FNTG3C = "C768.substrate_temperature.tileX.nc", + FNVEGC = "C768.vegetation_greenness.tileX.nc", + FNVETC = "C768.vegetation_type.tileX.nc", + FNSOTC = "C768.soil_type.tileX.nc", + FNVMNC = "C768.vegetation_greenness.tileX.nc", + FNVMXC = "C768.vegetation_greenness.tileX.nc", + FNSLPC = "C768.slope_type.tileX.nc", + FNABSC = "C768.maximum_snow_albedo.tileX.nc", + FNGLAC = "global_glacier.2x2.grb", + FNMXIC = "global_maxice.2x2.grb", + FNTSFC = "RTGSST.1982.2012.monthly.clim.grb", + FNSNOC = "global_snoclim.1.875.grb", + FNZORC = "igbp" + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + LDEBUG =.true., + FSMCL(2) = 99999 + FSMCL(3) = 99999 + FSMCL(4) = 99999 + FTSFS = 90 + FAISS = 99999 + FSNOL = 99999 + FSICL = 99999 + FTSFL = 99999, + FAISL = 99999, + FVETL = 99999, + FSOTL = 99999, + FvmnL = 99999, + FvmxL = 99999, + FSLPL = 99999, + FABSL = 99999, + FSNOS = 99999, + FSICS = 99999, +/ +&nam_stochy +/ +&nam_sfcperts +/ diff --git a/parm/model_configure_sar.tmp_ak b/parm/model_configure_sar.tmp_ak new file mode 100644 index 000000000..8f17e9c91 --- /dev/null +++ b/parm/model_configure_sar.tmp_ak @@ -0,0 +1,58 @@ +print_esmf: .false. +total_member: 1 +PE_MEMBER01: NTASKS +start_year: YR +start_month: MN +start_day: DY +start_hour: H_R +start_minute: 0 +start_second: 0 +nhours_fcst: NHRS +RUN_CONTINUE: .false. +ENS_SPS: .false. +dt_atmos: 90 +cpl: .false. +calendar: 'julian' +memuse_verbose: .false. +atmos_nthreads: NTHRD +use_hyper_thread: .false. +ncores_per_node: NCNODE +debug_affinity: .true. +restart_interval: 12 +output_1st_tstep_rst: .false. + +quilting: .true. +write_groups: 2 +write_tasks_per_group: 24 +num_files: 2 +filename_base: 'dyn''phy' +output_file: 'netcdf' +write_nemsioflip: .false. +write_fsyncflag: .false. + +output_grid: 'rotated_latlon' +cen_lon: -153.0 # central longitude +cen_lat: 61.0 # central latitude +lon1: -18.0 # longitude of lower-left point in rotated coordinate system (in degrees) +lat1: -14.79 # latitude of lower-left ... +lon2: 18.0 # longitude of upper-right ... +lat2: 14.79 # latitude of upper-right ... +dlon: 0.03 +dlat: 0.03 + +#output_grid: 'lambert_conformal' +#cen_lon: -97.5 # central longitude +#cen_lat: 38.5 # central latitude +#stdlat1: 38.5 +#stdlat2: 38.5 +#nx: 1799 # number of points along x-axis. +#ny: 1059 # number of points along y-axis. +#lon1: -122.719528 # longitude of lower-left point (in degrees) +#lat1: 21.138123 # latitude of lower-left point (in degrees) +#dx: 3000.0 # x-direction grid length +#dy: 3000.0 # y-direction grid length + +nfhout: 1 +nfhmax_hf: 60 +nfhout_hf: 1 +nsout: -1 diff --git a/parm/model_configure_sar.tmp_conus b/parm/model_configure_sar.tmp_conus index b0aae0ec2..7f4d1c09e 100755 --- a/parm/model_configure_sar.tmp_conus +++ b/parm/model_configure_sar.tmp_conus @@ -22,8 +22,8 @@ restart_interval: 12 output_1st_tstep_rst: .false. quilting: .true. -write_groups: 3 -write_tasks_per_group: 48 +write_groups: _WG_ +write_tasks_per_group: _WTPG_ num_files: 2 filename_base: 'dyn''phy' output_file: 'netcdf' diff --git a/parm/model_configure_sar.tmp_guam b/parm/model_configure_sar.tmp_guam new file mode 100644 index 000000000..f807b16bf --- /dev/null +++ b/parm/model_configure_sar.tmp_guam @@ -0,0 +1,58 @@ +print_esmf: .false. +total_member: 1 +PE_MEMBER01: NTASKS +start_year: YR +start_month: MN +start_day: DY +start_hour: H_R +start_minute: 0 +start_second: 0 +nhours_fcst: NHRS +RUN_CONTINUE: .false. +ENS_SPS: .false. +dt_atmos: 90 +cpl: .false. +calendar: 'julian' +memuse_verbose: .false. +atmos_nthreads: NTHRD +use_hyper_thread: .false. +ncores_per_node: NCNODE +debug_affinity: .true. +restart_interval: 12 +output_1st_tstep_rst: .false. + +quilting: .true. +write_groups: 1 +write_tasks_per_group: 12 +num_files: 2 +filename_base: 'dyn''phy' +output_file: 'netcdf' +write_nemsioflip: .false. +write_fsyncflag: .false. + +output_grid: 'rotated_latlon' +cen_lon: 146.0 # central longitude +cen_lat: 15.0 # central latitude +lon1: -5.6 # longitude of lower-left point in rotated coordinate system (in degrees) +lat1: -4.8 # latitude of lower-left ... +lon2: 5.6 # longitude of upper-right ... +lat2: 4.8 # latitude of upper-right ... +dlon: 0.025 +dlat: 0.025 + +#output_grid: 'lambert_conformal' +#cen_lon: -97.5 # central longitude +#cen_lat: 38.5 # central latitude +#stdlat1: 38.5 +#stdlat2: 38.5 +#nx: 1799 # number of points along x-axis. +#ny: 1059 # number of points along y-axis. +#lon1: -122.719528 # longitude of lower-left point (in degrees) +#lat1: 21.138123 # latitude of lower-left point (in degrees) +#dx: 3000.0 # x-direction grid length +#dy: 3000.0 # y-direction grid length + +nfhout: 1 +nfhmax_hf: 60 +nfhout_hf: 1 +nsout: -1 diff --git a/parm/model_configure_sar.tmp_pr b/parm/model_configure_sar.tmp_pr new file mode 100644 index 000000000..535b2b509 --- /dev/null +++ b/parm/model_configure_sar.tmp_pr @@ -0,0 +1,58 @@ +print_esmf: .false. +total_member: 1 +PE_MEMBER01: NTASKS +start_year: YR +start_month: MN +start_day: DY +start_hour: H_R +start_minute: 0 +start_second: 0 +nhours_fcst: NHRS +RUN_CONTINUE: .false. +ENS_SPS: .false. +dt_atmos: 90 +cpl: .false. +calendar: 'julian' +memuse_verbose: .false. +atmos_nthreads: NTHRD +use_hyper_thread: .false. +ncores_per_node: NCNODE +debug_affinity: .true. +restart_interval: 12 +output_1st_tstep_rst: .false. + +quilting: .true. +write_groups: 1 +write_tasks_per_group: 12 +num_files: 2 +filename_base: 'dyn''phy' +output_file: 'netcdf' +write_nemsioflip: .false. +write_fsyncflag: .false. + +output_grid: 'rotated_latlon' +cen_lon: -69.0 # central longitude +cen_lat: 18.0 # central latitude +lon1: -7.8 # longitude of lower-left point in rotated coordinate system (in degrees) +lat1: -5.2 # latitude of lower-left ... +lon2: 7.8 # longitude of upper-right ... +lat2: 5.2 # latitude of upper-right ... +dlon: 0.025 +dlat: 0.025 + +#output_grid: 'lambert_conformal' +#cen_lon: -97.5 # central longitude +#cen_lat: 38.5 # central latitude +#stdlat1: 38.5 +#stdlat2: 38.5 +#nx: 1799 # number of points along x-axis. +#ny: 1059 # number of points along y-axis. +#lon1: -122.719528 # longitude of lower-left point (in degrees) +#lat1: 21.138123 # latitude of lower-left point (in degrees) +#dx: 3000.0 # x-direction grid length +#dy: 3000.0 # y-direction grid length + +nfhout: 1 +nfhmax_hf: 60 +nfhout_hf: 1 +nsout: -1 diff --git a/rocoto/regional_workflow.xml.in b/rocoto/regional_workflow.xml.in index 8dcc62f9f..78d748a37 100644 --- a/rocoto/regional_workflow.xml.in +++ b/rocoto/regional_workflow.xml.in @@ -184,7 +184,6 @@ - &COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.atmf000.nemsio &COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.atmanl.nemsio &COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.sfcanl.nemsio diff --git a/rocoto/rocoto_pre_job.sh b/rocoto/rocoto_pre_job.sh index 256647bd9..33840ea06 100755 --- a/rocoto/rocoto_pre_job.sh +++ b/rocoto/rocoto_pre_job.sh @@ -11,8 +11,6 @@ elif [ "$machine" = "wcoss_cray" ] ; then . /opt/modules/default/init/sh elif [ "$machine" = "hera" ] ; then . /apps/lmod/lmod/init/sh -elif [ "$machine" = "theia" ] ; then - . /apps/lmod/lmod/init/sh elif [ "$machine" = "jet" ] ; then . /apps/lmod/lmod/init/sh fi diff --git a/rocoto/run_regional_hera.sh b/rocoto/run_regional_hera.sh index c8983432e..108fda66c 100755 --- a/rocoto/run_regional_hera.sh +++ b/rocoto/run_regional_hera.sh @@ -22,12 +22,12 @@ CPU_ACCOUNT=fv3-cam # Experiment name EXPT=fv3sartest # First, last, and interval of the workflow cycles -CYCLE_YMDH_BEG="2019082700" -CYCLE_YMDH_END="2019082700" +CYCLE_YMDH_BEG="2019093000" +CYCLE_YMDH_END="2019093000" CYCLE_INT_HH="06" GET_INPUT=NO -COMINgfs=/scratch2/NCEPDEV/fv3-cam/emc.campara/fv3-input/COMGFS +COMINgfs=/scratch2/NCEPDEV/fv3-cam/noscrub/Eric.Rogers/prfv3rt1 STMP=/scratch2/NCEPDEV/stmp3/${USER}/${EXPT} PTMP=/scratch2/NCEPDEV/stmp3/${USER}/${EXPT} diff --git a/rocoto/run_regional_theia.sh b/rocoto/run_regional_theia.sh deleted file mode 100755 index 9182f4f64..000000000 --- a/rocoto/run_regional_theia.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -l - -set -x - -# Home directory of the regional_workflow package - -HOMEfv3=/scratch4/NCEPDEV/fv3-cam/noscrub/${USER}/regional_workflow - -cd ${HOMEfv3}/rocoto - -# if want a non-CONUS domain, export DOMAIN here - -# export DOMAIN=pr - -source ./config.workflow.defaults - -# Machine and project account -machine=theia -SITE_FILE="sites/${machine}.ent" -CPU_ACCOUNT=fv3-cam - -# Experiment name -EXPT=fv3sartest -# First, last, and interval of the workflow cycles -CYCLE_YMDH_BEG="2019050200" -CYCLE_YMDH_END="2019050200" -CYCLE_INT_HH="06" - -GET_INPUT=NO -COMINgfs=/scratch3/NCEPDEV/hwrf/noscrub/hafs-input/COMGFS -STMP=/scratch4/NCEPDEV/stmp3/${USER}/${EXPT} -PTMP=/scratch4/NCEPDEV/stmp3/${USER}/${EXPT} - -# The workflow files of the experiment -expxml=${EXPT}_${CYCLE_YMDH_BEG}.xml -expdb=${EXPT}_${CYCLE_YMDH_BEG}.db - -# Generate the workflow definition file by parsing regional_workflow.xml.in -sed -e "s|@\[EXPT.*\]|${EXPT}|g" \ - -e "s|@\[GTYPE.*\]|${GTYPE}|g" \ - -e "s|@\[DOMAIN.*\]|${DOMAIN}|g" \ - -e "s|@\[CYCLE_YMDH_BEG.*\]|${CYCLE_YMDH_BEG}|g" \ - -e "s|@\[CYCLE_YMDH_END.*\]|${CYCLE_YMDH_END}|g" \ - -e "s|@\[CYCLE_INT_HH.*\]|${CYCLE_INT_HH}|g" \ - -e "s|@\[USER.*\]|${USER}|g" \ - -e "s|@\[CPU_ACCOUNT.*\]|${CPU_ACCOUNT}|g" \ - -e "s|@\[SITE_FILE.*\]|${SITE_FILE}|g" \ - -e "s|@\[HOMEfv3.*\]|${HOMEfv3}|g" \ - -e "s|@\[PTMP.*\]|${PTMP}|g" \ - -e "s|@\[STMP.*\]|${STMP}|g" \ - -e "s|@\[MAKE_GRID_OROG.*\]|${MAKE_GRID_OROG}|g" \ - -e "s|@\[MAKE_SFC_CLIMO.*\]|${MAKE_SFC_CLIMO}|g" \ - -e "s|@\[GET_INPUT.*\]|${GET_INPUT}|g" \ - -e "s|@\[COMINgfs.*\]|${COMINgfs}|g" \ - regional_workflow.xml.in \ - > ${expxml} - -# Run the workflow for the experiment -rocotorun -v 10 -w ${expxml} -d ${expdb} - -echo 'job done' - diff --git a/rocoto/sites/hera.ent b/rocoto/sites/hera.ent index 882279f5c..be83e6859 100644 --- a/rocoto/sites/hera.ent +++ b/rocoto/sites/hera.ent @@ -23,24 +23,24 @@ 103:00:00"> - 1:ppn=1:tpp=24TOTAL_TASKS1OMP_THREADS2400:30:00"> + 4:ppn=3TOTAL_TASKS12NCTSK3OMP_THREADS100:30:00"> - 20:ppn=1:tpp=24TOTAL_TASKS20OMP_THREADS2400:30:00"> + 4:ppn=3TOTAL_TASKS12OMP_THREADS101:30:00"> - NCTSK20OMP_THREADS202:00:00"> + NCTSK20NCNODE40OMP_THREADS202:00:00"> 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;"> - 71:ppn=20:tpp=2TOTAL_TASKS1404&FORECAST_EXTRA;"> + 71:ppn=20:tpp=2TOTAL_TASKS1404TASK_X24TASK_Y54WG2WTPG54&FORECAST_EXTRA;"> 68:ppn=12:tpp=2TOTAL_TASKS816&FORECAST_EXTRA;"> 10:ppn=12:tpp=2TOTAL_TASKS120&FORECAST_EXTRA;"> 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;"> - NCTSK24OMP_THREADS100:20:00"> - 3:ppn=24TOTAL_TASKS72&POST_EXTRA;"> - 2:ppn=24TOTAL_TASKS48&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> + NCTSK12OMP_THREADS100:30:00"> + 3:ppn=12TOTAL_TASKS72&POST_EXTRA;"> + 2:ppn=12TOTAL_TASKS48&POST_EXTRA;"> + 1:ppn=12TOTAL_TASKS24&POST_EXTRA;"> + 1:ppn=12TOTAL_TASKS24&POST_EXTRA;"> + 1:ppn=12TOTAL_TASKS24&POST_EXTRA;"> 15:ppn=24TOTAL_TASKS360&POST_EXTRA;"> 5:ppn=24TOTAL_TASKS120&POST_EXTRA;"> diff --git a/rocoto/sites/theia.ent b/rocoto/sites/theia.ent deleted file mode 100644 index fda62afe5..000000000 --- a/rocoto/sites/theia.ent +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - 24"> - 24"> - 1:ppn=1:tpp=24"> - - 1G"> - - PURE_OPENMP_THREADS&THREADS;OMP_NUM_THREADS&THREADS;KMP_NUM_THREADS&THREADS;"> - - 1:ppn=24TOTAL_TASKS4OMP_THREADS600:30:00"> - - 1:ppn=24TOTAL_TASKS1OMP_THREADS100:30:00"> - - 103:00:00"> - - 1:ppn=1:tpp=24TOTAL_TASKS1OMP_THREADS2400:30:00"> - - 20:ppn=1:tpp=24TOTAL_TASKS20OMP_THREADS2400:30:00"> - - - NCTSK12OMP_THREADS202:40:00"> - 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;"> - 76:ppn=12:tpp=2TOTAL_TASKS912&FORECAST_EXTRA;"> - 68:ppn=12:tpp=2TOTAL_TASKS816&FORECAST_EXTRA;"> - 10:ppn=12:tpp=2TOTAL_TASKS120&FORECAST_EXTRA;"> - 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;"> - - NCTSK24OMP_THREADS100:20:00"> - 3:ppn=24TOTAL_TASKS72&POST_EXTRA;"> - 2:ppn=24TOTAL_TASKS48&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> - 1:ppn=24TOTAL_TASKS24&POST_EXTRA;"> - - 15:ppn=24TOTAL_TASKS360&POST_EXTRA;"> - 5:ppn=24TOTAL_TASKS120&POST_EXTRA;"> - 2:ppn=24TOTAL_TASKS48&POST_EXTRA;"> - 2:ppn=24TOTAL_TASKS48&POST_EXTRA;"> - 2:ppn=24TOTAL_TASKS48&POST_EXTRA;"> - - 15G03:00:00"> - - 100:10:00"> - diff --git a/rocoto/sites/wcoss_cray.ent b/rocoto/sites/wcoss_cray.ent index 3a7f4f829..b3a95c4dd 100644 --- a/rocoto/sites/wcoss_cray.ent +++ b/rocoto/sites/wcoss_cray.ent @@ -30,7 +30,7 @@ NCTSK12OMP_THREADS202:40:00"> 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;"> - 76:ppn=12:tpp=2TOTAL_TASKS912&FORECAST_EXTRA;"> + 76:ppn=12:tpp=2TOTAL_TASKS912TASK_X16TASK_Y48WG3WTPG48&FORECAST_EXTRA;"> 60:ppn=12:tpp=2TOTAL_TASKS720&FORECAST_EXTRA;"> 9:ppn=12:tpp=2TOTAL_TASKS108&FORECAST_EXTRA;"> 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;"> diff --git a/rocoto/sites/wcoss_dell_p3.ent b/rocoto/sites/wcoss_dell_p3.ent index 43bd761ec..fcb444729 100644 --- a/rocoto/sites/wcoss_dell_p3.ent +++ b/rocoto/sites/wcoss_dell_p3.ent @@ -28,11 +28,11 @@ 20:ppn=1TOTAL_TASKS480OMP_THREADS100:30:00-R affinity[core]"> NCTSK12OMP_THREADS201:30:00-R affinity[core\(2\):distribute=balance]"> - 76:ppn=12:tpp=1TOTAL_TASKS912&FORECAST_EXTRA;"> - 60:ppn=12:tpp=1TOTAL_TASKS720&FORECAST_EXTRA;"> - 6:ppn=12:tpp=1TOTAL_TASKS72&FORECAST_EXTRA;"> - 9:ppn=12:tpp=1TOTAL_TASKS108&FORECAST_EXTRA;"> - 6:ppn=12:tpp=1TOTAL_TASKS72&FORECAST_EXTRA;"> + 76:ppn=12:tpp=2TOTAL_TASKS912TASK_X16TASK_Y48WG3WTPG48&FORECAST_EXTRA;"> + 60:ppn=12:tpp=2TOTAL_TASKS720&FORECAST_EXTRA;"> + 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;"> + 9:ppn=12:tpp=2TOTAL_TASKS108&FORECAST_EXTRA;"> + 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;"> NCTSK14OMP_THREADS100:20:00-R affinity[core]"> 2:ppn=14TOTAL_TASKS28&POST_EXTRA;"> diff --git a/scripts/exregional_forecast.sh b/scripts/exregional_forecast.sh index 29ba9f3ab..bcf42d61d 100755 --- a/scripts/exregional_forecast.sh +++ b/scripts/exregional_forecast.sh @@ -116,7 +116,11 @@ if [ $tmmark = tm00 ] ; then cp ${PARMfv3}/suite_${CCPP_SUITE}.xml suite_${CCPP_SUITE}.xml else cp ${PARMfv3}/input_sar_${dom}.nml input.nml - if [ ! -e input.nml ] ; then + if [ $dom = conus ] ; then + mv input.nml input.nml.tmp + cat input.nml.tmp | \ + sed s/_TASK_X_/${TASK_X}/ | sed s/_TASK_Y_/${TASK_Y}/ > input.nml + elif [ ! -e input.nml ] ; then echo "FATAL ERROR: no input_sar_${dom}.nml in PARMfv3 directory. Create one!" fi fi @@ -161,7 +165,8 @@ cat temp diag_table.tmp > diag_table cat model_configure.tmp | sed s/NTASKS/$TOTAL_TASKS/ | sed s/YR/$yr/ | \ sed s/MN/$mn/ | sed s/DY/$dy/ | sed s/H_R/$hr/ | \ sed s/NHRS/$NFCSTHRS/ | sed s/NTHRD/$OMP_NUM_THREADS/ | \ - sed s/NCNODE/$NCNODE/ | sed s/NRESTART/$NRST/ > model_configure + sed s/NCNODE/$NCNODE/ | sed s/NRESTART/$NRST/ | \ + sed s/_WG_/${WG}/ | sed s/_WTPG_/${WTPG}/ > model_configure #----------------------------------------- # Run the forecast diff --git a/scripts/exregional_make_bc.sh b/scripts/exregional_make_bc.sh new file mode 100755 index 000000000..21783f0dc --- /dev/null +++ b/scripts/exregional_make_bc.sh @@ -0,0 +1,100 @@ +#!/bin/sh +############################################################################ +# Script name: exfv3cam_sar_chgres.sh +# Script description: Makes ICs on fv3 stand-alone regional grid +# using FV3GFS initial conditions. +# Script history log: +# 1) 2016-09-30 Fanglin Yang +# 2) 2017-02-08 Fanglin Yang and George Gayno +# Use the new CHGRES George Gayno developed. +# 3) 2019-05-02 Ben Blake +# Created exfv3cam_sar_chgres.sh script +# from global_chgres_driver.sh +############################################################################ +set -ax + +# gtype = regional +echo "creating standalone regional BCs" +export ntiles=1 +export TILE_NUM=7 + +# +# set the links to use the 4 halo grid and orog files +# these are necessary for creating the boundary data +# +ln -sf $FIXsar/${CASE}_grid.tile7.halo4.nc $FIXsar/${CASE}_grid.tile7.nc +ln -sf $FIXsar/${CASE}_oro_data.tile7.halo4.nc $FIXsar/${CASE}_oro_data.tile7.nc +ln -sf $FIXsar/${CASE}.vegetation_greenness.tile7.halo4.nc $FIXsar/${CASE}.vegetation_greenness.tile7.nc +ln -sf $FIXsar/${CASE}.soil_type.tile7.halo4.nc $FIXsar/${CASE}.soil_type.tile7.nc +ln -sf $FIXsar/${CASE}.slope_type.tile7.halo4.nc $FIXsar/${CASE}.slope_type.tile7.nc +ln -sf $FIXsar/${CASE}.substrate_temperature.tile7.halo4.nc $FIXsar/${CASE}.substrate_temperature.tile7.nc +ln -sf $FIXsar/${CASE}.facsf.tile7.halo4.nc $FIXsar/${CASE}.facsf.tile7.nc +ln -sf $FIXsar/${CASE}.maximum_snow_albedo.tile7.halo4.nc $FIXsar/${CASE}.maximum_snow_albedo.tile7.nc +ln -sf $FIXsar/${CASE}.snowfree_albedo.tile7.halo4.nc $FIXsar/${CASE}.snowfree_albedo.tile7.nc +ln -sf $FIXsar/${CASE}.vegetation_type.tile7.halo4.nc $FIXsar/${CASE}.vegetation_type.tile7.nc + +# +# create namelist and run chgres cube +# +cp ${CHGRESEXEC} . + +# NHRS = lentgh of free forecast +# NHRSda = length of DA cyce forecast (always 1-h) +if [ $tmmark = tm00 ]; then + hour=3 + end_hour=$NHRS + hour_inc=3 +else + hour=0 + end_hour=$NHRSda + hour_inc=1 +fi + +while (test "$hour" -le "$end_hour") + do + if [ $hour -lt 10 ]; then + hour_name='00'$hour + elif [ $hour -lt 100 ]; then + hour_name='0'$hour + else + hour_name=$hour + fi + +cat <fort.41 +&config + mosaic_file_target_grid="$FIXsar/${CASE}_mosaic.nc" + fix_dir_target_grid="$FIXsar" + orog_dir_target_grid="$FIXsar" + orog_files_target_grid="${CASE}_oro_data.tile7.halo4.nc" + vcoord_file_target_grid="${FIXam}/global_hyblev.l${LEVS}.txt" + mosaic_file_input_grid="NULL" + orog_dir_input_grid="NULL" + orog_files_input_grid="NULL" + data_dir_input_grid="${INIDIR}" + atm_files_input_grid="gfs.t${cyc}z.atmf${hour_name}.nemsio" + sfc_files_input_grid="gfs.t${cyc}z.sfcanl.nemsio" + cycle_mon=$month + cycle_day=$day + cycle_hour=$cyc + convert_atm=.true. + convert_sfc=.false. + convert_nst=.false. + input_type="gaussian" + tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" + tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle" + regional=${REGIONAL} + halo_bndy=${HALO} +/ +EOF + + time ${APRUNC} -l ./regional_chgres_cube.x + hour=`expr $hour + $hour_inc` + +# +# move output files to save directory +# + mv gfs.bndy.nc $INPdir/gfs_bndy.tile7.${hour_name}.nc +done + + +exit 0 diff --git a/scripts/exregional_make_ic.sh b/scripts/exregional_make_ic.sh new file mode 100755 index 000000000..f86ba040f --- /dev/null +++ b/scripts/exregional_make_ic.sh @@ -0,0 +1,87 @@ +#!/bin/sh +############################################################################ +# Script name: exfv3cam_sar_chgres.sh +# Script description: Makes ICs on fv3 stand-alone regional grid +# using FV3GFS initial conditions. +# Script history log: +# 1) 2016-09-30 Fanglin Yang +# 2) 2017-02-08 Fanglin Yang and George Gayno +# Use the new CHGRES George Gayno developed. +# 3) 2019-05-02 Ben Blake +# Created exfv3cam_sar_chgres.sh script +# from global_chgres_driver.sh +############################################################################ +set -ax + +# gtype = regional +echo "creating standalone regional ICs" +export ntiles=1 +export TILE_NUM=7 + +if [ $tmmark = tm00 ] ; then + # input data is FV3GFS (ictype is 'pfv3gfs') + export ANLDIR=$INIDIR +fi +if [ $tmmark = tm12 ] ; then + # input data is FV3GFS (ictype is 'pfv3gfs') + export ANLDIR=$INIDIRtm12 +fi + +# +# set the links to use the 4 halo grid and orog files +# these are necessary for creating the boundary data +# +ln -sf $FIXsar/${CASE}_grid.tile7.halo4.nc $FIXsar/${CASE}_grid.tile7.nc +ln -sf $FIXsar/${CASE}_oro_data.tile7.halo4.nc $FIXsar/${CASE}_oro_data.tile7.nc +ln -sf $FIXsar/${CASE}.vegetation_greenness.tile7.halo4.nc $FIXsar/${CASE}.vegetation_greenness.tile7.nc +ln -sf $FIXsar/${CASE}.soil_type.tile7.halo4.nc $FIXsar/${CASE}.soil_type.tile7.nc +ln -sf $FIXsar/${CASE}.slope_type.tile7.halo4.nc $FIXsar/${CASE}.slope_type.tile7.nc +ln -sf $FIXsar/${CASE}.substrate_temperature.tile7.halo4.nc $FIXsar/${CASE}.substrate_temperature.tile7.nc +ln -sf $FIXsar/${CASE}.facsf.tile7.halo4.nc $FIXsar/${CASE}.facsf.tile7.nc +ln -sf $FIXsar/${CASE}.maximum_snow_albedo.tile7.halo4.nc $FIXsar/${CASE}.maximum_snow_albedo.tile7.nc +ln -sf $FIXsar/${CASE}.snowfree_albedo.tile7.halo4.nc $FIXsar/${CASE}.snowfree_albedo.tile7.nc +ln -sf $FIXsar/${CASE}.vegetation_type.tile7.halo4.nc $FIXsar/${CASE}.vegetation_type.tile7.nc + +# +# create namelist and run chgres cube +# +cp ${CHGRESEXEC} . +cat <fort.41 +&config + mosaic_file_target_grid="$FIXsar/${CASE}_mosaic.nc" + fix_dir_target_grid="$FIXsar" + orog_dir_target_grid="$FIXsar" + orog_files_target_grid="${CASE}_oro_data.tile7.halo4.nc" + vcoord_file_target_grid="${FIXam}/global_hyblev.l${LEVS}.txt" + mosaic_file_input_grid="NULL" + orog_dir_input_grid="NULL" + orog_files_input_grid="NULL" + data_dir_input_grid="${ANLDIR}" + atm_files_input_grid="gfs.t${cyc}z.atmanl.nemsio" + sfc_files_input_grid="gfs.t${cyc}z.sfcanl.nemsio" + cycle_mon=$month + cycle_day=$day + cycle_hour=$cyc + convert_atm=.true. + convert_sfc=.true. + convert_nst=.true. + input_type="gaussian" + tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" + tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle" + regional=${REGIONAL} + halo_bndy=${HALO} +/ +EOF + +time ${APRUNC} -l ./regional_chgres_cube.x + +# +# move output files to save directory +# +mv gfs_ctrl.nc $INPdir/. +mv gfs.bndy.nc $INPdir/gfs_bndy.tile7.000.nc +mv out.atm.tile1.nc $INPdir/gfs_data.tile7.nc +mv out.sfc.tile1.nc $INPdir/sfc_data.tile7.nc + + +exit 0 diff --git a/scripts/exregional_make_ic_bc.sh b/scripts/exregional_make_ic_bc.sh deleted file mode 120000 index df4b65c5a..000000000 --- a/scripts/exregional_make_ic_bc.sh +++ /dev/null @@ -1 +0,0 @@ -exregional_make_ic_bc_old.sh \ No newline at end of file diff --git a/scripts/exregional_make_ic_bc_new.sh b/scripts/exregional_make_ic_bc_new.sh deleted file mode 100755 index fc6574369..000000000 --- a/scripts/exregional_make_ic_bc_new.sh +++ /dev/null @@ -1,550 +0,0 @@ -#!/bin/bash -l -# -#----------------------------------------------------------------------- -# -# This script generates: -# -# 1) A NetCDF initial condition (IC) file on a regional grid for the -# date/time on which the analysis files in the directory specified by -# INIDIR are valid. Note that this file does not include data in the -# halo of this regional grid (that data is found in the boundary con- -# dition (BC) files). -# -# 2) A NetCDF surface file on the regional grid. As with the IC file, -# this file does not include data in the halo. -# -# 3) A NetCDF boundary condition (BC) file containing data on the halo -# of the regional grid at the initial time (i.e. at the same time as -# the one at which the IC file is valid). -# -# 4) A NetCDF "control" file named gfs_ctrl.nc that contains infor- -# mation on the vertical coordinate and the number of tracers for -# which initial and boundary conditions are provided. -# -# All four of these NetCDF files are placed in the directory specified -# by WORKDIR_ICSLBCS_CDATE, defined as -# -# WORKDIR_ICSLBCS_CDATE="$WORKDIR_ICSLBCS/$CDATE" -# -# where CDATE is the externally specified starting date and cycle hour -# of the current forecast. -# -#----------------------------------------------------------------------- - -# -#----------------------------------------------------------------------- -# -# Source the variable definitions script. -# -#----------------------------------------------------------------------- -# -. $SCRIPT_VAR_DEFNS_FP - -. $HOMEfv3/jobs/JFV3CAM_SAR_ENVIR -COMOUT=${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc} - -# -#----------------------------------------------------------------------- -# -# Source function definition files. -# -#----------------------------------------------------------------------- -# -. $USHDIR/source_funcs.sh -# -#----------------------------------------------------------------------- -# -# Save current shell options (in a global array). Then set new options -# for this script/function. -# -#----------------------------------------------------------------------- -# -{ save_shell_opts; set -u -x; } > /dev/null 2>&1 -# -#----------------------------------------------------------------------- -# -# Set the name of and create the directory in which the output from this -# script will be placed (if it doesn't already exist). -# -#----------------------------------------------------------------------- -# -if [ $RUN_ENVIR = "nco" ]; then - WORKDIR_ICSLBCS_CDATE=$COMOUT/anl.${dom}.$tmark -else - WORKDIR_ICSLBCS_CDATE="$WORKDIR_ICSLBCS/$CDATE" -fi -WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK="$WORKDIR_ICSLBCS_CDATE/ICSSURF_work" -mkdir_vrfy -p "$WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK" -cd_vrfy ${WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK} -# -#----------------------------------------------------------------------- -# -# Load modules and set machine-dependent parameters. -# -#----------------------------------------------------------------------- -# -case "$MACHINE" in -# -"WCOSS_C") -# - { save_shell_opts; set +x; } > /dev/null 2>&1 - - { restore_shell_opts; } > /dev/null 2>&1 - ;; -# -"WCOSS") -# - { save_shell_opts; set +x; } > /dev/null 2>&1 - - { restore_shell_opts; } > /dev/null 2>&1 - ;; -# -"DELL") -# - { save_shell_opts; set +x; } > /dev/null 2>&1 - - { restore_shell_opts; } > /dev/null 2>&1 - ;; -# -"THEIA") -# - { save_shell_opts; set +x; } > /dev/null 2>&1 - - ulimit -s unlimited - ulimit -a - - module purge - module load intel/18.1.163 - module load impi/5.1.1.109 - module load netcdf/4.3.0 - module load hdf5/1.8.14 - module load wgrib2/2.0.8 - module load contrib wrap-mpi - module list - - np=${SLURM_NTASKS} - APRUN="mpirun -np ${np}" - - { restore_shell_opts; } > /dev/null 2>&1 - ;; -# -"JET") -# - { save_shell_opts; set +x; } > /dev/null 2>&1 - - { restore_shell_opts; } > /dev/null 2>&1 - ;; -# -"ODIN") -# - ;; -# -"CHEYENNE") -# - ;; -# -esac -# -#----------------------------------------------------------------------- -# -# Create links to the grid and orography files with 4 halo cells. These -# are needed by chgres_cube to create the boundary data. -# -#----------------------------------------------------------------------- -# -# Are these still needed for chgres_cube? I don't think so; try commenting out. -# -ln_vrfy -sf $WORKDIR_SHVE/${CRES}_grid.tile7.halo${nh4_T7}.nc \ - $WORKDIR_SHVE/${CRES}_grid.tile7.nc - -ln_vrfy -sf $WORKDIR_SHVE/${CRES}_oro_data.tile7.halo${nh4_T7}.nc \ - $WORKDIR_SHVE/${CRES}_oro_data.tile7.nc -# -#----------------------------------------------------------------------- -# -# Find the directory in which the wgrib2 executable is located. -# -#----------------------------------------------------------------------- -# -WGRIB2_DIR=$( which wgrib2 ) || print_err_msg_exit "\ -Directory in which the wgrib2 executable is located not found: - WGRIB2_DIR = \"${WGRIB2_DIR}\" -" -# -#----------------------------------------------------------------------- -# -# Set the directory containing the external model output files. -# -#----------------------------------------------------------------------- -# -EXTRN_MDL_FILES_DIR="${EXTRN_MDL_FILES_BASEDIR_ICSSURF}/${CDATE}" -# -#----------------------------------------------------------------------- -# -# Source the file (generated by a previous task) that contains variable -# definitions (e.g. forecast hours, file and directory names, etc) re- -# lated to the exteranl model run that is providing fields from which -# we will generate LBC files for the FV3SAR. -# -#----------------------------------------------------------------------- -# -. ${EXTRN_MDL_FILES_DIR}/${EXTRN_MDL_INFO_FN} - - - - -# -#----------------------------------------------------------------------- -# -# Get the name of the external model to use in the chgres FORTRAN name- -# list file. -# -#----------------------------------------------------------------------- -# -case "$EXTRN_MDL_NAME_ICSSURF" in -# -"GFS") - external_model="GFS" - ;; -"RAPX") - external_model="RAP" - ;; -"HRRRX") - external_model="HRRR" - ;; -*) - print_err_msg_exit "\ -The external model name to use in the chgres FORTRAN namelist file is -not specified for this external model: - EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\" -" - ;; -# -esac -# -#----------------------------------------------------------------------- -# -# Get the name of the physics suite to use in the chgres FORTRAN name- -# list file. -# -#----------------------------------------------------------------------- -# -case "$CCPP_phys_suite" in -# -"GFS") - phys_suite="GFS" - ;; -"GSD") - phys_suite="GSD" - ;; -*) - print_err_msg_exit "\ -The physics suite name to use in the chgres FORTRAN namelist file is not -specified for this physics suite: - CCPP_phys_suite = \"${CCPP_phys_suite}\" -" - ;; -# -esac -# -#----------------------------------------------------------------------- -# -# Get the starting year, month, day, and hour of the the external model -# run. -# -#----------------------------------------------------------------------- -# -#yyyy="${EXTRN_MDL_CDATE:0:4}" -mm="${EXTRN_MDL_CDATE:4:2}" -dd="${EXTRN_MDL_CDATE:6:2}" -hh="${EXTRN_MDL_CDATE:8:2}" -#yyyymmdd="${EXTRN_MDL_CDATE:0:8}" -# -#----------------------------------------------------------------------- -# -# Set external model output file name(s) and file type/format. Note -# that these are now inputs into chgres. -# -#----------------------------------------------------------------------- -# -fn_atm_nemsio="" -fn_sfc_nemsio="" -fn_grib2="" -input_type="" - -case "$EXTRN_MDL_NAME_ICSSURF" in -"GFS") - fn_atm_nemsio="${EXTRN_MDL_FNS[0]}" - fn_sfc_nemsio="${EXTRN_MDL_FNS[1]}" -# This has to be fixed to that for EXTRN_MDL_NAME_ICSSURF, there is a "GFS_GAUSSIAN" (or better yet, spectral) -# and a "GFS-FV3" option!!! - input_type="gfs_gaussian" # For spectral GFS Gaussian grid in nemsio format. -# input_type="gaussian" # For FV3-GFS Gaussian grid in nemsio format. - ;; -"RAPX") - fn_grib2="${EXTRN_MDL_FNS[0]}" - input_type="grib2" - ;; -"HRRRX") - fn_grib2="${EXTRN_MDL_FNS[0]}" - input_type="grib2" - ;; -*) - print_err_msg_exit "\ -The external model output file name(s) and file type/format to use in the -chgres FORTRAN namelist file are not specified for this external model: - EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\" -" - ;; -esac -# -#----------------------------------------------------------------------- -# -# Set various external model-dependent namelist options to chgres_cube. -# -#----------------------------------------------------------------------- -# -case "$EXTRN_MDL_NAME_ICSSURF" in - -"GFS") -# -# The following are the three atmsopheric tracers that are in the atmo- -# spheric analysis (atmanl) nemsio file for CDATE=2017100700: -# -# "spfh","o3mr","clwmr" -# -# Note also that these are hardcoded in the code (file input_data.F90, -# subroutine read_input_atm_gfs_spectral_file), so that subroutine will -# break if tracers_input(:) is not specified as above. -# -# Note that there are other fields too ["hgt" (surface height (togography?)), -# pres (surface pressure), ugrd, vgrd, and tmp (temperature)] in the atmanl file, but those -# are not considered tracers (they're categorized as dynamics variables, -# I guess). -# -# Another note: The way things are set up now, tracers_input(:) and -# tracers(:) are assumed to have the same number of elements (just the -# atmospheric tracer names in the input and output files may be differ- -# ent). There needs to be a check for this in the chgres_cube code!! -# If there was a varmap table that specifies how to handle missing -# fields, that would solve this problem. -# -# Also, it seems like the order of tracers in tracers_input(:) and -# tracers(:) must match, e.g. if ozone mixing ratio is 3rd in -# tracers_input(:), it must also be 3rd in tracers(:). How can this be checked? -# -# NOTE: Really should use a varmap table for GFS, just like we do for -# RAP/HRRR. -# - -# A non-prognostic variable that appears in the field_table for GSD physics -# is cld_amt. Why is that in the field_table at all (since it is a non- -# prognostic field), and how should we handle it here?? - -# I guess this works for spectral GFS but not for FV3GFS since the nemsio -# output files of those have different variable names (see below). - tracers_input="\"spfh\",\"o3mr\",\"clwmr\"" -# I guess this works for FV3GFS but not for the spectral GFS since these -# variables won't exist in the spectral GFS atmanl files. -# tracers_input="\"sphum\",\"liq_wat\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\",\"o3mr\"" -# -# Not sure if tracers(:) should include "cld_amt" since that is also in -# the field_table for CDATE=2017100700 but is a non-prognostic variable. -# -# tracers="\"sphum\",\"liq_wat\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\",\"o3mr\"" - tracers="\"sphum\",\"o3mr\",\"liq_wat\"" -# - numsoil_out="4" - geogrid_file_input_grid="" # How to get this to not be used??? - replace_vgtyp=".true." - replace_sotyp=".true." - replace_vgfrc=".true." - tg3_from_soil=".false." - ;; - -"HRRRX") -# Don't set these; tracers(:) won't get used, and tracers_input(:) will -# get set to the value specified in the varmap table. -# Maybe better to set them to blank? Not sure... - tracers_input="\"\"" - tracers="\"\"" -# - numsoil_out="9" - geogrid_file_input_grid="/scratch3/BMC/det/beck/FV3-CAM/geo_em.d01.nc" # As of 2019-06-19, this parameter is only used if reading in HRRR grib2 files. - replace_vgtyp=".false." - replace_sotyp=".false." - replace_vgfrc=".false." - tg3_from_soil=".true." - ;; - -*) - print_err_msg_exit "\ -One or more chgres_cube namelist variables have not been specified for -the specifed external model used to generate ICs, surface fields, and -the first LBC: - - EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\" - -Unspecified namelist variables: - - tracers_input - tracers - numsoil_out - geogrid_file_input_grid - replace_vgtyp - replace_sotyp - replace_vgfrc - tg3_from_soil -" - ;; - -esac -# -#----------------------------------------------------------------------- -# -# Build the FORTRAN namelist file that chgres_cube will read in. -# -#----------------------------------------------------------------------- -# - -# For GFS physics, the character arrays tracers_input(:) and tracers(:) -# must be specified in the namelist file. tracers_input(:) contains the -# tracer name to look for in the external model file(s), while tracers(:) -# contains the names to use for the tracers in the output NetCDF files -# that chgres creates (that will be read in by FV3). Since when FV3 -# reads these NetCDF files it looks for atmospheric traces as specified -# in the file field_table, tracers(:) should be set to the names in -# field_table. -# -# NOTE: This process should be automated where the set of elements that -# tracers(:) should be set to is obtained from reading in field_table. -# -# To know how to set tracers_input(:), you have to know the names of the -# variables in the input atmospheric nemsio file (usually this file is -# named gfs.t00z.atmanl.nemsio). -# -# It is not quite clear how these should be specified. Here are a list -# of examples: -# -# [Gerard.Ketefian@tfe05] /scratch3/.../chgres_cube.fd/run (feature/chgres_grib2_gsk) -# $ grep -n -i "tracers" * | grep theia -# config.C1152.l91.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C1152.l91.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C48.gaussian.theia.nml:20: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C48.gaussian.theia.nml:21: tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle" -# config.C48.gfs.gaussian.theia.nml:21: tracers="sphum","liq_wat","o3mr" -# config.C48.gfs.gaussian.theia.nml:22: tracers_input="spfh","clwmr","o3mr" -# config.C48.gfs.spectral.theia.nml:21: tracers_input="spfh","o3mr","clwmr" -# config.C48.gfs.spectral.theia.nml:22: tracers="sphum","o3mr","liq_wat" -# config.C48.theia.nml:21: tracers="sphum","liq_wat","o3mr" -# config.C48.theia.nml:22: tracers_input="spfh","clwmr","o3mr" -# config.C768.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C768.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C768.l91.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C768.l91.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C768.nest.atm.theia.nml:22: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" -# config.C768.nest.atm.theia.nml:23: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel" - - -# fix_dir_target_grid="${BASEDIR}/JP_grid_HRRR_like_fix_files_chgres_cube" -# base_install_dir="${SORCDIR}/chgres_cube.fd" - -# -# As an alternative to the cat command below, we can have a template for -# the namelist file and use the set_file_param(.sh) function to set -# namelist entries in it. The set_file_param function will print out a -# message and exit if it fails to set a variable in the file. -# - -{ cat > fort.41 < /dev/null 2>&1 diff --git a/sorc/build_forecast.sh b/sorc/build_forecast.sh index 7ea6b6e2e..798825271 100755 --- a/sorc/build_forecast.sh +++ b/sorc/build_forecast.sh @@ -17,7 +17,6 @@ if [ ! -d "../exec" ]; then fi if [ $target = hera ]; then target=hera.intel ; fi -if [ $target = theia ]; then target=theia.intel ; fi cd regional_forecast.fd/ FV3=$( pwd -P )/FV3 diff --git a/sorc/checkout.sh b/sorc/checkout.sh index cc2c39503..107b411db 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -28,15 +28,13 @@ echo $topdir echo NEMSfv3gfs checkout ... if [[ ! -d regional_forecast.fd ]] ; then - git clone -b regional --recursive gerrit:NEMSfv3gfs regional_forecast.fd - #cd regional_forecast.fd - #git checkout regional - #git submodule update --init --recursive - #cd ${topdir} + git clone --recursive gerrit:NEMSfv3gfs regional_forecast.fd + cd regional_forecast.fd + git submodule update --init --recursive + cd ${topdir} else echo 'Directory regional_forecast.fd already exists. Pull the latest updates from the corresponding branch.' cd regional_forecast.fd - git checkout regional git pull git submodule update --init --recursive cd ${topdir} @@ -44,45 +42,37 @@ fi echo EMC_post checkout ... if [[ ! -d regional_post.fd ]] ; then - git clone -b regional --recursive gerrit:EMC_post regional_post.fd - #cd regional_post.fd - #git checkout regional - #cd ${topdir} + git clone -b support/regional https://github.com/hafs-community/EMC_post.git regional_post.fd else echo 'Directory regional_post.fd already exists. Pull the latest updates from the corresponding branch.' cd regional_post.fd - git checkout regional + git checkout support/regional git pull cd ${topdir} fi echo UFS_UTILS checkout ... if [[ ! -d regional_utils.fd ]] ; then - git clone -b feature/HAFS --recursive gerrit:UFS_UTILS regional_utils.fd - #cd regional_utils.fd - #git checkout feature/HAFS - #cd ${topdir} + git clone -b support/regional https://github.com/hafs-community/UFS_UTILS.git regional_utils.fd else echo 'Directory regional_utils.fd already exists. Pull the latest updates from the corresponding branch.' - cd regional_utils.fd - git checkout feature/HAFS - git pull + cd regional_utils.fd + git checkout support/regional + git pull cd ${topdir} fi echo ProdGSI checkout ... if [[ ! -d regional_gsi.fd ]] ; then git clone -b regional --recursive gerrit:ProdGSI regional_gsi.fd - #cd regional_gsi.fd - #git checkout regional - #git submodule update --init --recursive - #cd ${topdir} + cd regional_gsi.fd + git submodule update --init --recursive + cd ${topdir} else echo 'Directory regional_gsi.fd already exists. Pull the latest updates from the corresponding branch.' cd regional_gsi.fd - git checkout regional git submodule update --init --recursive - git pull + git pull cd ${topdir} fi diff --git a/sorc/link_fix.sh b/sorc/link_fix.sh index a6206a16b..4602e6580 100755 --- a/sorc/link_fix.sh +++ b/sorc/link_fix.sh @@ -12,15 +12,10 @@ fi pwd=$(pwd -P) -# if [ ${target} == "wcoss_cray" ]; then -# FIX_DIR="/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix" - if [[ ${target} == "wcoss_dell_p3" || ${target} == "wcoss" || ${target} == "wcoss_cray" ]]; then FIX_DIR="/gpfs/dell2/emc/modeling/noscrub/emc.campara/fix_fv3cam" elif [ ${target} == "hera" ]; then FIX_DIR="/scratch2/NCEPDEV/fv3-cam/emc.campara/fix_fv3cam" -elif [ ${target} == "theia" ]; then - FIX_DIR="/scratch4/NCEPDEV/fv3-cam/save/Benjamin.Blake/fix_fv3cam" elif [ ${target} == "jet" ]; then FIX_DIR="/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix" else diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh index f014663be..7ea684701 100644 --- a/sorc/machine-setup.sh +++ b/sorc/machine-setup.sh @@ -30,26 +30,16 @@ if [[ -d /lfs3 ]] ; then export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc module use $NCEPLIBS/modulefiles -elif [[ -d /scratch2 ]] ; then +elif [[ -d /scratch1/NCEPDEV ]] ; then # We are on NOAA Hera if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 source /apps/lmod/lmod/init/$__ms_shell fi - target=theia + target=hera module purge - module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles/ - module use /scratch2/NCEPDEV/nwprod/NCEPLIBS_CCPP/modulefiles/ -elif [[ -d /scratch3 ]] ; then - # We are on NOAA Theia - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - target=theia - module purge - module use /scratch3/NCEPDEV/nwprod/modulefiles/ - module use /scratch3/NCEPDEV/nwprod/lib/modulefiles + module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles + MOD_PATH=/scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge if ( ! eval module help > /dev/null 2>&1 ) ; then diff --git a/ush/regional_chgres.sh b/ush/regional_chgres.sh deleted file mode 100755 index 057086b63..000000000 --- a/ush/regional_chgres.sh +++ /dev/null @@ -1,543 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: global_chgres.sh -# Script description: Convert GFS restart files to the FV3 cubed-sphere grid. -# -# Author: Mark Iredell Org: NP23 Date: 1999-03-01 -# -# Abstract: This script converts the GFS restart files, namely the sigma -# file, surface file, nst file or all 3, to the cubed-sphere grid. When -# converting an nst file, you must also convert a surface file. -# All input files are specified by the first three arguments. -# The horizontal/vertical resolution of the output files is given by -# the CASE/LEVS arguments. When the input sigma file is sigio format, -# the conversion is done in two steps. First, the spectral coefficients -# are converted to grid point space. By default, this intermediate -# data are on a gaussian grid with i/j dimension as described by the -# input file header. These defaults may be overridden by the IDRT, -# LONB and LATB environment variables. The sigma file is converted -# to all six sides of the cube. The surface and nst files are only -# converted to one side of the cube (as specified by the TILE_NUM -# environment variable). I.e., you must run this script six times -# to fully convert a surface or nst file. -# -# Script history log: -# 1999-03-01 Mark Iredell -# 2011-08-05 Added logic for nst restart files. G. Gayno -# 2011-10-10 Updated for gaea - S. Moorthi -# 2016-12-27 Updated for FV3 core. G. Gayno -# 2017-04-12 Remove references to output nsst file. nsst data -# now written to surface restart file. -# 2018-02-09 Updated for regional grids. -# -# Usage: global_chgres.sh SIGINP SFCINP NSTINP CASE LEVS -# -# Input script positional parameters: -# 1 Input sigma file (SIGINP) -# 2 Input surface file (SFCINP) -# 3 Input nst file (NSTINP) -# 4 Output cubed-sphere resolution (CASE) -# 5 New number of vertical sigma levels (LEVS) -# -# Imported Shell Variables: -# SIGINP Input sigma file -# overridden by $1; skip sigma conversion if missing -# SFCINP Input surface file -# overridden by $2; skip surface conversion if missing -# NSTINP Input nst file -# overridden by $3; skip surface conversion if missing -# CASE Output cubed-sphere resolution. -# overridden by $4. -# LEVS New number of sigma levels -# overridden by $5; one or the other is required -# OUTTYP Output file type. Not used yet. The sigma/atms and -# surface/nsst files are output in netcdf. -# IDRT When converting an atmospheric file in sigio format, -# this is the grid type after spectral conversion. -# 4: guassian(default); 0: lat-lon -# LONB When converting an atmospheric file in sigio format, -# this is the number of longitudes of the intermediate grid -# after spectral conversion. When converting a surface -# file, this is the number of longitudes of the input -# climatological soil moisture data file. -# LATB When converting an atmospheric file in sigio format, -# this is the number of latitudes of the intermediate grid -# after spectral conversion. When converting a surface -# file, this is the number of latitudes of the input -# climatological soil moisture data file. -# NTRAC New number of tracers -# defaults to input sigma file value -# REGIONAL Process stand-alone regional grid. When '1', remove halo -# from grids and create an atmospheric boundary file. -# When '2', create boundary file only. When '0', -# do neither (process as normal for a global grid). -# Default is '0'. -# HALO When processing a stand-alone regional grid, this -# specifies the number of rows/cols for the halo. -# Default is '0'. -# IDVC New vertical coordinate id (1 for sigma, 2 for hybrid) -# defaults to input sigma file value -# IDSL New midlayer pressure id (1 for phillips, 2 for mean) -# defaults to input sigma file value -# TILE_NUM The number of the cubed-sphere tile to convert surface -# and nst data. -# NWROOT A string that defaults to /nwprod -# gfs_ver Version number. Defaults to v15.0.0. -# BASEDIR Base directory. Defaults to /nwprod2 -# HOMEgfs GFS home directory. Defaults to $BASEDIR/gfs.${gfs_ver} -# FIXam Directory for global climo files -# Defaults to $HOMEgfs/fix/fix_am -# FIXfv3 Directory for model 'grid' and 'orography' files. -# Defaults to HOMEgfs/fix/fix_fv3_gmted2010 -# EXECgfs Directory for global executables. -# Defaults to $HOMEgfs/exec -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# SIGLEVEL New sigma levels ("NULL" to use from input sigma file) -# defaults to ${FIXam}/global_siglevel.l${LEVS}.txt -# FNGLAC Input glacier climatology GRIB file -# defaults to ${FIXam}/global_glacier.2x2.grb -# FNMXIC Input maximum sea ice climatology GRIB file -# defaults to ${FIXam}/global_maxice.2x2.grb -# FNTSFC Input SST climatology GRIB file -# defaults to ${FIXam}/global_sstclim.2x2.grb -# FNSNOC Input snow climatology GRIB file -# defaults to ${FIXam}/global_snoclim.1.875.grb -# FNZORC Input roughness climatology -# defaults to sib vegtetation type-based lookup table -# FNVETC must be set to ${FIXam}/global_vegtype.1x1.grb -# FNALBC Input 4-component albedo climatology GRIB file -# defaults to ${FIXam}/global_albedo4.1x1.grb -# FNALBC2 Input 'facsf' and 'facwf' albedo climatology GRIB file -# defaults to ${FIXam}/global_albedo4.1x1.grb -# FNAISC Input sea ice climatology GRIB file -# defaults to ${FIXam}/global_iceclim.2x2.grb -# FNTG3C Input deep soil temperature climatology GRIB file -# defaults to ${FIXam}/global_tg3clim.2.6x1.5.grb -# FNVEGC Input vegetation fraction climatology GRIB file -# defaults to ${FIXam}/global_vegfrac.1x1.grb -# FNVETC Input vegetation type climatology GRIB file -# defaults to ${FIXam}/global_vegtype.1x1.grb -# FNSOTC Input soil type climatology GRIB file -# defaults to ${FIXam}/global_soiltype.1x1.grb -# FNSMCC Input soil moisture climatology GRIB file -# defaults to ${FIXam}/global_soilmgldas.statsgo.t$JCAP.$LONB.$LATB.grb -# FNVMNC Input min veg frac climatology GRIB file -# defaults to ${FIXam}/global_shdmin.0.144x0.144.grb -# FNVMXC Input max veg frac climatology GRIB file -# defaults to ${FIXam}/global_shdmax.0.144x0.144.grb -# FNSLPC Input slope type climatology GRIB file -# defaults to ${FIXam}/global_slope.1x1.grb -# FNABSC Input max snow albedo climatology GRIB file -# defaults to ${FIXam}/global_snoalb.1x1.grb -# FNMSKH Input high resolution land mask GRIB file -# defaults to ${FIXam}/seaice_newland.grb -# CLIMO_ -# FIELDS_OPT 1-Climo/static fields (albedo, soil type, greenness, etc.) -# interpolated from input grid. -# 2-Vegetation, slope and soil type interpolated from input -# grid. All other climo/static fields from sfccycle. -# 3-All climo/static fields from sfccycle. -# defaults to '3' -# LANDICE_OPT 1-Input no landice => output landice -# 2-Input landice => output landice. -# 3-Input no landice => output no landice -# 4-Input landice => output no landice -# 5-Output landice regardless of input -# LSOIL 2-Output file with 2 soil layers -# 4-Output file with 4 soil layers -# 0-Default, number of soil layers same as input file -# IVSSFC Version number of surface restart file -# 0-Default, same as input file. -# LONSPERLAT New lonsperlat ("NULL" to use from input surface file) -# CHGRESEXEC Change resolution executable -# defaults to ${EXECgfs}/global_chgres -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# CHGRESVARS Other namelist inputs to the change resolution executable -# such as IGEN,MQUICK. Defaults to none set. -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 64000000 -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# FV3GRID_TILE# Contains grid information (lat/lon) for the cubed-sphere grid. -# One file for each of the six tiles. -# FV3OROG_TILE# Contains mask and orography for the cubed-sphere grid. -# One file for each of the six tiles. -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CHGRESEXEC -# -# input data : $1 or $SIGINP -# $2 or $SFCINP -# $3 or $NSTINP -# $SIGLEVEL -# $LONSPERLAT -# $FVGRID_TILE[1-6] -# $FVOROG_TILE[1-6] -# -# output data: -# $PGMOUT -# $PGMERR -# -# scratch : ${DATA}/chgres.inp.sig -# ${DATA}/chgres.inp.siglevel -# ${DATA}/chgres.inp.sfc -# ${DATA}/chgres.inp.nst -# ${DATA}/chgres.inp.lpl3 -# ${DATA}/chgres.fv3.grd.t[1-6] -# ${DATA}/chgres.fv3.orog.t[1-6] -# ${DATA}/fort.35 -# ${DATA}/fort.81 -# ${DATA}/NULL -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -#### -################################################################################ -# Set environment. -VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -# Command line arguments. -APRUNC=${APRUNC:-""} -SIGINP=${1:-${SIGINP:-NULL}} -SFCINP=${2:-${SFCINP:-NULL}} -NSTINP=${3:-${NSTINP:-NULL}} -CASE=${4:-${CASE:?}} -LEVS=${5:-${LEVS:?}} -# Directories. -gfs_ver=${gfs_ver:-v15.0.0} -BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}} -HOMEgfs=${HOMEgfs:-$BASEDIR/gfs.${gfs_ver}} -EXECgfs=${EXECgfs:-$HOMEgfs/exec} - -DATA=${DATA:-$(pwd)} -# Filenames. -CHGRESEXEC=${CHGRESEXEC:-${EXECgfs}/regional_chgres.x} -# - -CRES=$(echo $CASE | cut -c2-) -JCAP_CASE=$((CRES*2-2)) -LATB_CASE=$((CRES*2)) -LONB_CASE=$((CRES*4)) - -JCAP=${JCAP:-$JCAP_CASE} -LONB=${LONB:-$LONB_CASE} -LATB=${LATB:-$LATB_CASE} - -SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}.txt} -if [ $LEVS = 128 ]; then - SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}B.txt} -fi -FNGLAC=${FNGLAC:-${FIXam}/global_glacier.2x2.grb} -FNMXIC=${FNMXIC:-${FIXam}/global_maxice.2x2.grb} -FNTSFC=${FNTSFC:-${FIXam}/cfs_oi2sst1x1monclim19822001.grb} -FNSNOC=${FNSNOC:-${FIXam}/global_snoclim.1.875.grb} -FNZORC=${FNZORC:-sib} -FNALBC=${FNALBC:-${FIXam}/global_albedo4.1x1.grb} -FNALBC2=${FNALBC2:-${FIXam}/global_albedo4.1x1.grb} -FNAISC=${FNAISC:-${FIXam}/cfs_ice1x1monclim19822001.grb} -FNTG3C=${FNTG3C:-${FIXam}/global_tg3clim.2.6x1.5.grb} -FNVEGC=${FNVEGC:-${FIXam}/global_vegfrac.0.144.decpercent.grb} -FNVETC=${FNVETC:-${FIXam}/global_vegtype.1x1.grb} -FNSOTC=${FNSOTC:-${FIXam}/global_soiltype.1x1.grb} -FNSMCC=${FNSMCC:-${FIXam}/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb} -FNVMNC=${FNVMNC:-${FIXam}/global_shdmin.0.144x0.144.grb} -FNVMXC=${FNVMXC:-${FIXam}/global_shdmax.0.144x0.144.grb} -FNSLPC=${FNSLPC:-${FIXam}/global_slope.1x1.grb} -FNABSC=${FNABSC:-${FIXam}/global_snoalb.1x1.grb} -FNMSKH=${FNMSKH:-${FIXam}/seaice_newland.grb} -LANDICE_OPT=${LANDICE_OPT:-2} -CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-3} -SOILTYPE_INP=${SOILTYPE_INP:-"zobler"} -SOILTYPE_OUT=${SOILTYPE_OUT:-"zobler"} -VEGTYPE_INP=${VEGTYPE_INP:-"sib"} -VEGTYPE_OUT=${VEGTYPE_OUT:-"sib"} -LONSPERLAT=${LONSPERLAT:-NULL} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -TILE_NUM=${TILE_NUM:-1} -IDRT=${IDRT:-4} -OUTTYP=${OUTTYP:-999} -NTRAC=${NTRAC:-3} -REGIONAL=${REGIONAL:-0} -HALO=${HALO:-0} -gtype=${gtype:-uniform} -IALB=${IALB:-0} -IDVC=${IDVC:-2} -IDVT=${IDVT:-21} -IDVM=${IDVM:-0} -IDSL=${IDSL:-1} -LSOIL=${LSOIL:-0} -IVSSFC=${IVSSFC:-0} -use_ufo=${use_ufo:-.true.} -rdgrid=${rdgrid:-.false.} -NTHREADS=${NTHREADS:-1} -NTHSTACK=${NTHSTACK:-1024000000} -XLSMPOPTS=${XLSMPOPTS:-"parthds=$NTHREADS:stack=$NTHSTACK"} -export KMP_STACKSIZE=${KMP_STACKSIZE:-$NTHSTACK} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export REDOUT=${REDOUT:-'1>'} -export REDERR=${REDERR:-'2>'} -CHGRESVARS=${CHGRESVARS} -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -################################################################################ -# Change resolution -#export XLSMPOPTS="parthds=$NTHREADS:stack=$NTHSTACK" -export PGM=$CHGRESEXEC -export pgm=$PGM -$LOGSCRIPT -rm -f NULL -ln -sf $SIGINP chgres.inp.sig -ln -sf $SIGLEVEL chgres.inp.siglevel -ln -sf $SFCINP chgres.inp.sfc -ln -sf $NSTINP chgres.inp.nst -ln -sf $LONSPERLAT chgres.inp.lpl3 - -if [ $gtype = regional ]; then - tile=7 - ln -sf ${FIXsar}/${CASE}_grid.tile${tile}.halo${HALO}.nc chgres.fv3.grd.t${tile} - ln -sf ${FIXsar}/${CASE}_oro_data.tile${tile}.halo${HALO}.nc chgres.fv3.orog.t${tile} -else - tile=1 - while [ $tile -le $ntiles ]; do - ln -sf ${FIXnest}/C${CRES}_grid.tile${tile}.nc chgres.fv3.grd.t${tile} - ln -sf ${FIXnest}/C${CRES}_oro_data.tile${tile}.nc chgres.fv3.orog.t${tile} - tile=`expr $tile + 1 ` - done -fi - -if [[ $LANDICE_OPT = 3 || $LANDICE_OPT = 4 ]] -then - LANDICE=.false. -else - LANDICE=.true. -fi - -if [[ $VEGTYPE_OUT = "sib" ]]; then - IVEGSRC=2 -elif [[ $VEGTYPE_OUT = "igbp" ]]; then - IVEGSRC=1 -fi - -if [[ $SOILTYPE_OUT = "zobler" ]]; then - ISOT=0 -elif [[ $SOILTYPE_OUT = "statsgo" ]]; then - ISOT=1 -fi - -# If the appropriate resolution fix file is not present, use the highest resolution available (T1534) -[[ ! -f $FNSMCC ]] && FNSMCC="$FIXam/global_soilmgldas.statsgo.t1534.3072.1536.grb" - -cat << EOF > fort.35 - &NAMSFC - FNGLAC='${FNGLAC}' - FNMXIC='${FNMXIC}' - FNTSFC='${FNTSFC}' - FNSNOC='${FNSNOC}' - FNZORC='${FNZORC}' - FNALBC='${FNALBC}' - FNALBC2='${FNALBC2}' - FNAISC='${FNAISC}' - FNTG3C='${FNTG3C}' - FNVEGC='${FNVEGC}' - FNVETC='${FNVETC}' - FNSOTC='${FNSOTC}' - FNSMCC='${FNSMCC}' - FNVMNC='${FNVMNC}' - FNVMXC='${FNVMXC}' - FNSLPC='${FNSLPC}' - FNABSC='${FNABSC}' - FNMSKH='${FNMSKH}' - FNTSFA='' - FNACNA='' - FNSNOA='' - LDEBUG=.false. - LANDICE=$LANDICE -/ -EOF - -if [[ $SOILTYPE_INP = "zobler" ]]; then -cat << EOF > fort.81 - &soil_parameters - soil_src_input = "zobler" - smclow_input = 0.5 - smchigh_input = 6.0 - smcmax_input= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465, - 0.404, 0.439, 0.421 - beta_input = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17, - 6.77, 5.25, 4.26 - psis_input = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260, - 0.140, 0.360, 0.040 - satdk_input = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5, - 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5 -EOF -elif [[ $SOILTYPE_INP = "statsgo" ]]; then -cat << EOF > fort.81 - &soil_parameters - soil_src_input = "statsgo" - smclow_input = 0.5 - smchigh_input = 6.0 - smcmax_input= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439, - 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, - 0.464, -9.99, 0.200, 0.421 - beta_input = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25, - 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, - 5.25, -9.99, 4.05, 4.26 - psis_input = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, - 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, - 0.3548, -9.99, 0.0350, 0.0363 - satdk_input = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6, - 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6, - 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5, - 1.4078e-5 -EOF -fi - -if [[ $SOILTYPE_OUT = "zobler" ]]; then -cat << EOF >> fort.81 - soil_src_output = "zobler" - smclow_output = 0.5 - smchigh_output = 6.0 - smcmax_output= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465, - 0.404, 0.439, 0.421 - beta_output = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17, - 6.77, 5.25, 4.26 - psis_output = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260, - 0.140, 0.360, 0.040 - satdk_output = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5, - 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5 -/ -EOF -elif [[ $SOILTYPE_OUT = "statsgo" ]]; then -cat << EOF >> fort.81 - soil_src_output = "statsgo" - smclow_output = 0.5 - smchigh_output = 6.0 - smcmax_output= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439, - 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, - 0.464, -9.99, 0.200, 0.421 - beta_output = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25, - 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, - 5.25, -9.99, 4.05, 4.26 - psis_output = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, - 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, - 0.3548, -9.99, 0.0350, 0.0363 - satdk_output = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6, - 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6, - 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5, - 1.4078e-5 -/ -EOF -fi - -cat << EOF >> fort.81 - &veg_parameters - veg_src_input = "${VEGTYPE_INP}" - veg_src_output = "${VEGTYPE_OUT}" - salp_output= -999. - snup_output= -999. -/ - &options - CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT} - LANDICE_OPT=${LANDICE_OPT} - / -EOF - -export OMP_NUM_THREADS=${OMP_NUM_THREADS_CH:-${CHGRESTHREAD:-1}} - - eval $APRUNC $CHGRESEXEC <&2 -fi -exit $err diff --git a/ush/run_commands_bc.sh b/ush/run_commands_bc.sh index d1075b3ce..518cea81a 100644 --- a/ush/run_commands_bc.sh +++ b/ush/run_commands_bc.sh @@ -21,7 +21,7 @@ elif [ "$machine" = wcoss_dell_p3 ]; then export APRUNC=${APRUNC:-"time"} export APRUNO="time" export BACKGROUND="" -elif [ "$machine" = theia ]; then +elif [ "$machine" = hera ]; then export APRUNS=${APRUNS:-"srun --ntasks=1 --nodes=1 --ntasks-per-node=1 --cpus-per-task=1"} #export APRUNF=${APRUNF:-"srun --ntasks=${TOTAL_TASKS} --ntasks-per-node=${NCTSK} --cpus-per-task=${OMP_NUM_THREADS} --multi-prog"} #export APRUNF=${APRUNF:-"source"} diff --git a/ush/run_commands_forecast.sh b/ush/run_commands_forecast.sh index f7a7a93de..d6b461110 100644 --- a/ush/run_commands_forecast.sh +++ b/ush/run_commands_forecast.sh @@ -21,7 +21,7 @@ elif [ "$machine" = wcoss_dell_p3 ]; then export APRUNC=${APRUNC:-"mpirun"} export APRUNO="time" export BACKGROUND="" -elif [ "$machine" = theia ]; then +elif [ "$machine" = hera ]; then export APRUNS=${APRUNS:-"srun --ntasks=1 --ntasks-per-node=1 --cpus-per-task=1"} #export APRUNF=${APRUNF:-"srun --ntasks=${TOTAL_TASKS} --ntasks-per-node=${NCTSK} --cpus-per-task=${OMP_NUM_THREADS} --multi-prog"} export APRUNF=${APRUNF:-"time"}