From d5ffcff11ac271e8c2af0e21d66efc1c97a8558c Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Fri, 26 Jun 2020 11:48:42 -0400 Subject: [PATCH] Merge HWRF CCPP physics into HAFS (#57) This Pull Request enables using the HWRF CCPP physics in the HAFS system. *Initial workflow level changes came from the feature/hwrf_physics branch of @mzhangw *Import hwrf_physics_fix: DETAMPNEW_DATA.expanded_rain_LE is needed for the F-A microphysics scheme and the following files are needed for the HWRF version of NOAH LSM (note: other versions of NOAH LSM may need different versions of these files): GENPARM.TBL, SOILPARM.TBL, VEGPARM.TBL *Add two hwrf physics suite related workflow level regression tests *Workflow level (parm/script/build) clean ups and unification to support both HWRF ccpp suite and the existing HAFS suite. All workflow level regression test passed. And this PR addresses issue #58. Note: Enabling using the HWRF CCPP Suite in HAFS is a collaborative group effort among DTC, GSL, EMC, including: Man Zhang, Grant Firl, Mrinal Biswas, Dominikus Heinzeller, Chunxi Zhang, Eric Aligo, Weiguo Wang, Qingfu Liu, Bin Liu, etc. --- parm/forecast/globnest/diag_table.tmp | 2 +- parm/forecast/globnest/input.nml.tmp | 3 +- .../data_table | 0 .../diag_table.tmp | 13 +- .../field_table | 14 +- parm/forecast/globnest_hwrf/input.nml.tmp | 347 +++++++++++++++++ .../globnest_hwrf/input_nest02.nml.tmp | 352 +++++++++++++++++ .../model_configure.tmp | 0 .../nems.configure | 0 .../DETAMPNEW_DATA.expanded_rain_LE | Bin 0 -> 86408 bytes parm/forecast/hwrf_physics_fix/GENPARM.TBL | 36 ++ parm/forecast/hwrf_physics_fix/SOILPARM.TBL | 45 +++ parm/forecast/hwrf_physics_fix/VEGPARM.TBL | 243 ++++++++++++ parm/forecast/regional/diag_table.tmp | 2 +- parm/forecast/regional/input.nml.tmp | 3 +- .../forecast/regional_hafsv0p1a/input.nml.tmp | 333 ---------------- parm/forecast/regional_hwrf/data_table | 0 parm/forecast/regional_hwrf/diag_table.tmp | 354 ++++++++++++++++++ parm/forecast/regional_hwrf/field_table | 36 ++ parm/forecast/regional_hwrf/input.nml.tmp | 345 +++++++++++++++++ .../regional_hwrf/model_configure.tmp | 47 +++ parm/forecast/regional_hwrf/nems.configure | 5 + parm/hafsv0p1a_al.conf | 76 ---- parm/hafsv0p1a_ep.conf | 76 ---- rocoto/cronjob_hafs_rt.sh | 18 + rocoto/cronjob_hafsv0p1a_tmp.sh | 63 ---- scripts/exhafs_forecast.sh | 3 + sorc/build_forecast.sh | 2 +- sorc/hafs_forecast.fd | 2 +- sorc/machine-setup.sh | 2 +- ush/hafs_pre_job.sh.inc | 2 +- 31 files changed, 1857 insertions(+), 567 deletions(-) rename parm/forecast/{regional_hafsv0p1a => globnest_hwrf}/data_table (100%) mode change 100644 => 100755 rename parm/forecast/{regional_hafsv0p1a => globnest_hwrf}/diag_table.tmp (97%) mode change 100644 => 100755 rename parm/forecast/{regional_hafsv0p1a => globnest_hwrf}/field_table (83%) mode change 100644 => 100755 create mode 100755 parm/forecast/globnest_hwrf/input.nml.tmp create mode 100755 parm/forecast/globnest_hwrf/input_nest02.nml.tmp rename parm/forecast/{regional_hafsv0p1a => globnest_hwrf}/model_configure.tmp (100%) mode change 100644 => 100755 rename parm/forecast/{regional_hafsv0p1a => globnest_hwrf}/nems.configure (100%) mode change 100644 => 100755 create mode 100644 parm/forecast/hwrf_physics_fix/DETAMPNEW_DATA.expanded_rain_LE create mode 100644 parm/forecast/hwrf_physics_fix/GENPARM.TBL create mode 100644 parm/forecast/hwrf_physics_fix/SOILPARM.TBL create mode 100644 parm/forecast/hwrf_physics_fix/VEGPARM.TBL delete mode 100644 parm/forecast/regional_hafsv0p1a/input.nml.tmp create mode 100755 parm/forecast/regional_hwrf/data_table create mode 100755 parm/forecast/regional_hwrf/diag_table.tmp create mode 100755 parm/forecast/regional_hwrf/field_table create mode 100755 parm/forecast/regional_hwrf/input.nml.tmp create mode 100755 parm/forecast/regional_hwrf/model_configure.tmp create mode 100755 parm/forecast/regional_hwrf/nems.configure delete mode 100644 parm/hafsv0p1a_al.conf delete mode 100644 parm/hafsv0p1a_ep.conf delete mode 100755 rocoto/cronjob_hafsv0p1a_tmp.sh diff --git a/parm/forecast/globnest/diag_table.tmp b/parm/forecast/globnest/diag_table.tmp index 190ef4398..457c451e0 100644 --- a/parm/forecast/globnest/diag_table.tmp +++ b/parm/forecast/globnest/diag_table.tmp @@ -303,7 +303,7 @@ "gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 -# Reflectivity from GFDL microphysics +# Reflectivity from microphysics "gfs_phys", "refl_10cm", "refl_10cm", "fv3_history2d", "all", .false., "none", 2 #Max/Min must be kept in separate files. Time is controlled by diag_table diff --git a/parm/forecast/globnest/input.nml.tmp b/parm/forecast/globnest/input.nml.tmp index 3a2ddb777..4cee1e030 100644 --- a/parm/forecast/globnest/input.nml.tmp +++ b/parm/forecast/globnest/input.nml.tmp @@ -177,7 +177,8 @@ redrag = .true. dspheat = .true. hybedmf = .true. - moninq_fac = -1.0 + hurr_pbl = .T. ! HWRF moninedmf + moninq_fac = -1.0 ! HWRF_moninedmf satmedmf = .false. random_clds = .false. trans_trac = .true. diff --git a/parm/forecast/regional_hafsv0p1a/data_table b/parm/forecast/globnest_hwrf/data_table old mode 100644 new mode 100755 similarity index 100% rename from parm/forecast/regional_hafsv0p1a/data_table rename to parm/forecast/globnest_hwrf/data_table diff --git a/parm/forecast/regional_hafsv0p1a/diag_table.tmp b/parm/forecast/globnest_hwrf/diag_table.tmp old mode 100644 new mode 100755 similarity index 97% rename from parm/forecast/regional_hafsv0p1a/diag_table.tmp rename to parm/forecast/globnest_hwrf/diag_table.tmp index 190ef4398..f554bae51 --- a/parm/forecast/regional_hafsv0p1a/diag_table.tmp +++ b/parm/forecast/globnest_hwrf/diag_table.tmp @@ -119,9 +119,9 @@ "gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "q_rimef", "qrim", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "ps", "pressfc", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "hs", "hgtsfc", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "cld_amt", "cld_amt", "fv3_history", "all", .false., "none", 2 #"gfs_dyn", "ice_nc", "nicp", "fv3_history", "all", .false., "none", 2 #"gfs_dyn", "rain_nc", "ntrnc", "fv3_history", "all", .false., "none", 2 @@ -201,6 +201,9 @@ "gfs_phys", "u10m", "ugrd10m", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "v10m", "vgrd10m", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "crain", "crain", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_ice", "f_ice", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_rain", "f_rain", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_rimef", "f_rimef", "fv3_history2d", "all", .false., "none", 2 "gfs_sfc", "tprcp", "tprcp", "fv3_history2d", "all", .false., "none", 2 "gfs_sfc", "hgtsfc", "orog", "fv3_history2d", "all", .false., "none", 2 "gfs_sfc", "weasd", "weasd", "fv3_history2d", "all", .false., "none", 2 @@ -302,8 +305,12 @@ "gfs_phys", "nbdsf_ave", "nbdsf_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 - -# Reflectivity from GFDL microphysics +#HWRF +#"gfs_phys", "cleffr", "cleffr", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "cieffr", "cieffr", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "cseffr", "cseffr", "fv3_history2d", "all", .false., "none", 2 +# +# Reflectivity from microphysics "gfs_phys", "refl_10cm", "refl_10cm", "fv3_history2d", "all", .false., "none", 2 #Max/Min must be kept in separate files. Time is controlled by diag_table diff --git a/parm/forecast/regional_hafsv0p1a/field_table b/parm/forecast/globnest_hwrf/field_table old mode 100644 new mode 100755 similarity index 83% rename from parm/forecast/regional_hafsv0p1a/field_table rename to parm/forecast/globnest_hwrf/field_table index 7719eb2e0..420f4a48a --- a/parm/forecast/regional_hafsv0p1a/field_table +++ b/parm/forecast/globnest_hwrf/field_table @@ -9,20 +9,18 @@ "longname", "cloud water mixing ratio" "units", "kg/kg" "profile_type", "fixed", "surface_value=1.e30" / - "TRACER", "atmos_mod", "rainwat" - "longname", "rain mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / "TRACER", "atmos_mod", "ice_wat" "longname", "cloud ice mixing ratio" "units", "kg/kg" "profile_type", "fixed", "surface_value=1.e30" / - "TRACER", "atmos_mod", "snowwat" - "longname", "snow mixing ratio" +# prognostic rain water mixing ratio + "TRACER", "atmos_mod", "rainwat" + "longname", "rain mixing ratio" "units", "kg/kg" "profile_type", "fixed", "surface_value=1.e30" / - "TRACER", "atmos_mod", "graupel" - "longname", "graupel mixing ratio" +# prognostic mass weighted rime factor + "TRACER", "atmos_mod", "q_rimef" + "longname", "mass weighted rime factor" "units", "kg/kg" "profile_type", "fixed", "surface_value=1.e30" / # prognostic ozone mixing ratio tracer diff --git a/parm/forecast/globnest_hwrf/input.nml.tmp b/parm/forecast/globnest_hwrf/input.nml.tmp new file mode 100755 index 000000000..149fa1707 --- /dev/null +++ b/parm/forecast/globnest_hwrf/input.nml.tmp @@ -0,0 +1,347 @@ + &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 = 32 + chksum_debug = .false. + dycore_only = .false. + fdiag = 3 + avg_max_length = 3600. + fhmax = _fhmax_ + fhout = 3 + fhmaxhf = 0 + fhouthf = 3 + ccpp_suite = '_ccpp_suite_' +/ + +&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 = 12000000, + print_memory_usage = .false. +/ + + &fv_grid_nml + !grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + !layout = 12,12 + !layout = 8,8 + layout = _layoutx_,_layouty_ + io_layout = 1,1 + npx = _npx_ + npy = _npy_ + ntiles = 6 + npz = _npz_ + !grid_type = -1 + make_nh = .F. + fv_debug = .F. + range_warn = .T. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + nudge_dz = .F. + tau = 5. + rf_cutoff = 30.e2 + d2_bg_k1 = 0.16 + d2_bg_k2 = 0.05 + kord_tm = -9 + kord_mt = 9 + kord_wz = 9 + kord_tr = 9 + hydrostatic = .F. + phys_hydrostatic = .F. + use_hydro_pressure = .F. + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = 1 + n_split = 7 + nwat = 4 + 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.04 + delt_max = 0.002 + ke_bg = 0. + do_vort_damp = .T. + external_ic = .T. + external_eta = .T. + gfs_phil = .false. + nggps_ic = .T. + mountain = .F. + ncep_ic = .F. + d_con = 1.0 + hord_mt = 5 + hord_vt = 5 + hord_tm = 5 + hord_dp = -5 + hord_tr = 8 + adjust_dry_mass = .F. + consv_te = 1. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 3 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + agrid_vel_rst = .true. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + write_3d_diags = .true. + + do_schmidt = .true. + target_lat = _target_lat_ + target_lon = _target_lon_ + stretch_fac = _stretch_fac_ + + full_zs_filter = .F. !unreleased feature + n_zs_filter = 0 + nord_zs_filter = 4 +/ + + &nest_nml + ntiles = 2 + nest_pes = _glob_pes_,_nest_pes_ + p_split = 1 +/ + + &surf_map_nml + zero_ocean = .F. + cd4 = 0.15 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 15 + n_del4 = 2 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = _levp_ + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 3. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 0. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 15 ! F-A MP scheme + RHGRD = 0.975 ! F-A + spec_adv = .true. ! F-A + icloud = 3 ! Thompson cloud fraction + iovr_lw = 4 ! HWRF RRTMG + iovr_sw = 4 ! HWRF RRTMG + hwrf_samfdeep = .true. ! HWRF SASdeep + hwrf_samfshal = .true. ! HWRF SASshal + asolfac_deep = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + asolfac_shal = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + hurr_pbl = .T. ! HWRF moninedmf + moninq_fac = -1.0 ! HWRF moninedmf + 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 = .true. + shal_cnv = .true. ! HWRF SAS Shallow convection + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + satmedmf = .false. + random_clds = .false. + trans_trac = .true. + cnvcld = .true. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.25 ! NCEP default + sfc_z0_type = 4 !HWRF + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + lsm = 4 !HWRF + iopt_dveg = 2 + iopt_crs = 1 + iopt_btr = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_alb = 2 + iopt_snf = 4 + iopt_tbot = 2 + iopt_stc = 1 + debug = .false. + oz_phys = .F. + oz_phys_2015 = .T. + nst_anl = .true. + nstf_name = _nstf_n1_,_nstf_n2_,_nstf_n3_,_nstf_n4_,_nstf_n5_ + cplflx = .F. + psautco = 0.0008, 0.0005 + prautco = 0.00015, 0.00015 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + do_deep = .true. + lgfdlmprad = .true. + effr_in = .true. + do_sppt = .F. + do_shum = .F. + do_skeb = .F. + do_sfcperts = .F. +/ + + &gfdl_cloud_microphysics_nml + sedi_transport = .true. + 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 + 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" + !FNZORC = "global_zorclim.1x1.grb", + FNALBC = "global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb", + FNALBC2 = "global_albedo4.1x1.grb", + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNTG3C = "global_tg3clim.2.6x1.5.grb", + FNVEGC = "global_vegfrac.0.144.decpercent.grb", + FNVETC = "global_vegtype.igbp.t1534.3072.1536.rg.grb", + FNSOTC = "global_soiltype.statsgo.t1534.3072.1536.rg.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + FNVMNC = "global_shdmin.0.144x0.144.grb", + FNVMXC = "global_shdmax.0.144x0.144.grb", + FNSLPC = "global_slope.1x1.grb", + FNABSC = "global_mxsnoalb.uariz.t1534.3072.1536.rg.grb", + 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 +/ + + &cires_ugwp_nml + knob_ugwp_solver = 2 + knob_ugwp_source = 1,1,0,0 + knob_ugwp_wvspec = 1,25,25,25 + knob_ugwp_azdir = 2,4,4,4 + knob_ugwp_stoch = 0,0,0,0 + knob_ugwp_effac = 1,1,1,1 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_version = 0 + launch_level = 25 +/ diff --git a/parm/forecast/globnest_hwrf/input_nest02.nml.tmp b/parm/forecast/globnest_hwrf/input_nest02.nml.tmp new file mode 100755 index 000000000..48e6642e9 --- /dev/null +++ b/parm/forecast/globnest_hwrf/input_nest02.nml.tmp @@ -0,0 +1,352 @@ + &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 = 32 + chksum_debug = .false. + dycore_only = .false. + fdiag = 3 + avg_max_length = 3600. + fhmax = _fhmax_ + fhout = 3 + fhmaxhf = 0 + fhouthf = 3 + ccpp_suite = '_ccpp_suite_' +/ + +&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 = 12000000, + print_memory_usage = .false. +/ + + &fv_grid_nml + !grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + !layout = 64,30 + !layout = 40,30 + layout = _layoutx_,_layouty_ + io_layout = 1,1 + npx = _npx_ + npy = _npy_ + ntiles = 1 + npz = _npz_ + !grid_type = -1 + make_nh = .F. + fv_debug = .F. + range_warn = .T. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + nudge_dz = .F. + tau = 5. + rf_cutoff = 50.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.15 + 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 = 4 + n_split = 5 + nwat = 4 + 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.04 + delt_max = 0.008 + ke_bg = 0. + do_vort_damp = .T. + 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 = .F. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 3 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + agrid_vel_rst = .true. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + write_3d_diags = .true. + + nested = .true. + twowaynest = .true. + parent_grid_num = 1 + parent_tile = 6 + refinement = _refinement_ + ioffset = _ioffset_ + joffset = _joffset_ + nestupdate = 7 + + full_zs_filter = .F. !unreleased feature + n_zs_filter = 1 + nord_zs_filter = 4 +/ + + &nest_nml + ntiles = 2 + nest_pes = _glob_pes_,_nest_pes_ + p_split = 1 +/ + + &surf_map_nml + zero_ocean = .F. + cd4 = 0.15 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 15 + n_del4 = 2 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = _levp_ + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 3. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 0. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 15 ! F-A MP scheme + RHGRD = 1.0 ! F-A + spec_adv = .true. ! F-A + icloud = 3 ! Thompson cloud fraction + iovr_lw = 4 ! HWRF RRTMG + iovr_sw = 4 ! HWRF RRTMG + hwrf_samfdeep = .true. ! HWRF SASdeep + hwrf_samfshal = .true. ! HWRF SASshal + asolfac_deep = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + asolfac_shal = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + hurr_pbl = .T. ! HWRF moninedmf + moninq_fac = -1.0 ! HWRF moninedmf + 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 = .true. + shal_cnv = .true. ! HWRF SAS Shallow convection + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + satmedmf = .false. + random_clds = .false. + trans_trac = .true. + cnvcld = .true. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.01 + sfc_z0_type = 4 !HWRF + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + lsm = 4 !HWRF + iopt_dveg = 2 + iopt_crs = 1 + iopt_btr = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_alb = 2 + iopt_snf = 4 + iopt_tbot = 2 + iopt_stc = 1 + debug = .false. + oz_phys = .F. + oz_phys_2015 = .T. + nst_anl = .true. + nstf_name = _nstf_n1_,_nstf_n2_,_nstf_n3_,_nstf_n4_,_nstf_n5_ + cplflx = .F. + psautco = 0.0008, 0.0005 + prautco = 0.00015, 0.00015 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + do_deep = .true. + lgfdlmprad = .true. + effr_in = .true. + do_sppt = .F. + do_shum = .F. + do_skeb = .F. + do_sfcperts = .F. +/ + + &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 + 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" + !FNZORC = "global_zorclim.1x1.grb", + FNALBC = "global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb", + FNALBC2 = "global_albedo4.1x1.grb", + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNTG3C = "global_tg3clim.2.6x1.5.grb", + FNVEGC = "global_vegfrac.0.144.decpercent.grb", + FNVETC = "global_vegtype.igbp.t1534.3072.1536.rg.grb", + FNSOTC = "global_soiltype.statsgo.t1534.3072.1536.rg.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + FNVMNC = "global_shdmin.0.144x0.144.grb", + FNVMXC = "global_shdmax.0.144x0.144.grb", + FNSLPC = "global_slope.1x1.grb", + FNABSC = "global_mxsnoalb.uariz.t1534.3072.1536.rg.grb", + 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 +/ + + &cires_ugwp_nml + knob_ugwp_solver = 2 + knob_ugwp_source = 1,1,0,0 + knob_ugwp_wvspec = 1,25,25,25 + knob_ugwp_azdir = 2,4,4,4 + knob_ugwp_stoch = 0,0,0,0 + knob_ugwp_effac = 1,1,1,1 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_version = 0 + launch_level = 25 +/ diff --git a/parm/forecast/regional_hafsv0p1a/model_configure.tmp b/parm/forecast/globnest_hwrf/model_configure.tmp old mode 100644 new mode 100755 similarity index 100% rename from parm/forecast/regional_hafsv0p1a/model_configure.tmp rename to parm/forecast/globnest_hwrf/model_configure.tmp diff --git a/parm/forecast/regional_hafsv0p1a/nems.configure b/parm/forecast/globnest_hwrf/nems.configure old mode 100644 new mode 100755 similarity index 100% rename from parm/forecast/regional_hafsv0p1a/nems.configure rename to parm/forecast/globnest_hwrf/nems.configure diff --git a/parm/forecast/hwrf_physics_fix/DETAMPNEW_DATA.expanded_rain_LE b/parm/forecast/hwrf_physics_fix/DETAMPNEW_DATA.expanded_rain_LE new file mode 100644 index 0000000000000000000000000000000000000000..d01c8f54e212455da118fb858073a8acd9bbc0c4 GIT binary patch literal 86408 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%0D3LmK*E_f@)NlOAWuqXUu##LJ4Q2cr%Kfu^ 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 literal 0 HcmV?d00001 diff --git a/parm/forecast/hwrf_physics_fix/GENPARM.TBL b/parm/forecast/hwrf_physics_fix/GENPARM.TBL new file mode 100644 index 000000000..17fc9172b --- /dev/null +++ b/parm/forecast/hwrf_physics_fix/GENPARM.TBL @@ -0,0 +1,36 @@ +General Parameters +SLOPE_DATA +9 +0.1 +0.6 +1.0 +0.35 +0.55 +0.8 +0.63 +0.0 +0.0 +SBETA_DATA +-2.0 +FXEXP_DATA +2.0 +CSOIL_DATA +2.00E+6 +SALP_DATA +2.6 +REFDK_DATA +2.0E-6 +REFKDT_DATA +3.0 +FRZK_DATA +0.15 +ZBOT_DATA +-8.0 +CZIL_DATA +0.1 +SMLOW_DATA +0.5 +SMHIGH_DATA +3.0 +LVCOEF_DATA +0.5 diff --git a/parm/forecast/hwrf_physics_fix/SOILPARM.TBL b/parm/forecast/hwrf_physics_fix/SOILPARM.TBL new file mode 100644 index 000000000..518ba6f8b --- /dev/null +++ b/parm/forecast/hwrf_physics_fix/SOILPARM.TBL @@ -0,0 +1,45 @@ +Soil Parameters +STAS +19,1 'BB DRYSMC F11 MAXSMC REFSMC SATPSI SATDK SATDW WLTSMC QTZ ' +1, 2.79, 0.010, -0.472, 0.339, 0.192, 0.069, 4.66E-5, 2.65E-5, 0.010, 0.92, 'SAND' +2, 4.26, 0.028, -1.044, 0.421, 0.283, 0.036, 1.41E-5, 5.14E-6, 0.028, 0.82, 'LOAMY SAND' +3, 4.74, 0.047, -0.569, 0.434, 0.312, 0.141, 5.23E-6, 8.05E-6, 0.047, 0.60, 'SANDY LOAM' +4, 5.33, 0.084, 0.162, 0.476, 0.360, 0.759, 2.81E-6, 2.39E-5, 0.084, 0.25, 'SILT LOAM' +5, 3.86, 0.061, 0.162, 0.484, 0.347, 0.955, 2.18E-6, 1.66E-5, 0.061, 0.10, 'SILT' +6, 5.25, 0.066, -0.327, 0.439, 0.329, 0.355, 3.38E-6, 1.43E-5, 0.066, 0.40, 'LOAM' +7, 6.77, 0.069, -1.491, 0.404, 0.315, 0.135, 4.45E-6, 1.01E-5, 0.069, 0.60, 'SANDY CLAY LOAM' +8, 8.72, 0.120, -1.118, 0.464, 0.387, 0.617, 2.03E-6, 2.35E-5, 0.120, 0.10, 'SILTY CLAY LOAM' +9, 8.17, 0.103, -1.297, 0.465, 0.382, 0.263, 2.45E-6, 1.13E-5, 0.103, 0.35, 'CLAY LOAM' +10, 10.73, 0.100, -3.209, 0.406, 0.338, 0.098, 7.22E-6, 1.87E-5, 0.100, 0.52, 'SANDY CLAY' +11, 10.39, 0.126, -1.916, 0.468, 0.404, 0.324, 1.34E-6, 9.64E-6, 0.126, 0.10, 'SILTY CLAY' +12, 11.55, 0.138, -2.138, 0.468, 0.412, 0.468, 9.74E-7, 1.12E-5, 0.138, 0.25, 'CLAY' +13, 5.25, 0.066, -0.327, 0.439, 0.329, 0.355, 3.38E-6, 1.43E-5, 0.066, 0.05, 'ORGANIC MATERIAL' +14, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.60, 'WATER' +15, 2.79, 0.006, -1.111, 0.20, 0.17, 0.069, 1.41E-4, 1.36E-4, 0.006, 0.07, 'BEDROCK' +16, 4.26, 0.028, -1.044, 0.421, 0.283, 0.036, 1.41E-5, 5.14E-6, 0.028, 0.25, 'OTHER(land-ice)' +17, 11.55, 0.030, -10.472, 0.468, 0.454, 0.468, 9.74E-7, 1.12E-5, 0.030, 0.60, 'PLAYA' +18, 2.79, 0.006, -0.472, 0.200, 0.17, 0.069, 1.41E-4, 1.36E-4, 0.006, 0.52, 'LAVA' +19, 2.79, 0.01, -0.472, 0.339, 0.192, 0.069, 4.66E-5, 2.65E-5, 0.01, 0.92, 'WHITE SAND' +Soil Parameters +STAS-RUC +19,1 'BB DRYSMC HC MAXSMC REFSMC SATPSI SATDK SATDW WLTSMC QTZ ' +1, 4.05, 0.002, 1.47, 0.395, 0.174, 0.121, 1.76E-4, 0.608E-6, 0.033, 0.92, 'SAND' +2, 4.38, 0.035, 1.41, 0.410, 0.179, 0.090, 1.56E-4, 0.514E-5, 0.055, 0.82, 'LOAMY SAND' +3, 4.90, 0.041, 1.34, 0.435, 0.249, 0.218, 3.47E-5, 0.805E-5, 0.095, 0.60, 'SANDY LOAM' +4, 5.30, 0.034, 1.27, 0.485, 0.369, 0.786, 7.20E-6, 0.239E-4, 0.143, 0.25, 'SILT LOAM' +5, 5.30, 0.034, 1.27, 0.485, 0.369, 0.786, 7.20E-6, 0.239E-4, 0.143, 0.10, 'SILT' +6, 5.39, 0.050, 1.21, 0.451, 0.314, 0.478, 6.95E-6, 0.143E-4, 0.137, 0.40, 'LOAM' +7, 7.12, 0.068, 1.18, 0.420, 0.299, 0.299, 6.30E-6, 0.990E-5, 0.148, 0.60, 'SANDY CLAY LOAM' +8, 7.75, 0.060, 1.32, 0.477, 0.357, 0.356, 1.70E-6, 0.237E-4, 0.208, 0.10, 'SILTY CLAY LOAM' +9, 8.52, 0.085, 1.23, 0.476, 0.391, 0.630, 2.45E-6, 0.113E-4, 0.230, 0.35, 'CLAY LOAM' +10, 10.40, 0.100, 1.18, 0.426, 0.316, 0.153, 2.17E-6, 0.187E-4, 0.210, 0.52, 'SANDY CLAY' +11, 10.40, 0.070, 1.15, 0.492, 0.409, 0.490, 1.03E-6, 0.964E-5, 0.250, 0.10, 'SILTY CLAY' +12, 11.40, 0.068, 1.09, 0.482, 0.400, 0.405, 1.28E-6, 0.112E-4, 0.268, 0.25, 'CLAY' +13, 5.39, 0.027, 1.21, 0.451, 0.314, 0.478, 6.95E-6, 0.143E-4, 0.117, 0.05, 'ORGANIC MATERIAL' +14, 0.0, 0.0, 4.18, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.00, 'WATER' +15, 4.05, 0.004, 2.03, 0.200, 0.10 , 0.121, 1.41E-4, 0.136E-3, 0.006, 0.60, 'BEDROCK' +16, 4.90, 0.065, 2.10, 0.435, 0.249, 0.218, 3.47E-5, 0.514E-5, 0.114, 0.05, 'OTHER(land-ice)' +17, 11.40, 0.030, 1.41, 0.468, 0.454, 0.468, 9.74E-7, 0.112E-4, 0.030, 0.60, 'PLAYA' +18, 4.05, 0.006, 1.41, 0.200, 0.17, 0.069, 1.41E-4, 0.136E-3, 0.006, 0.52, 'LAVA' +19, 4.05, 0.01, 1.47, 0.339, 0.236, 0.069, 1.76E-4, 0.608E-6, 0.060, 0.92, 'WHITE SAND' + diff --git a/parm/forecast/hwrf_physics_fix/VEGPARM.TBL b/parm/forecast/hwrf_physics_fix/VEGPARM.TBL new file mode 100644 index 000000000..5b7ab79a5 --- /dev/null +++ b/parm/forecast/hwrf_physics_fix/VEGPARM.TBL @@ -0,0 +1,243 @@ +Vegetation Parameters +USGS +27,1, 'SHDFAC NROOT RS RGL HS SNUP MAXALB LAIMIN LAIMAX EMISSMIN EMISSMAX ALBEDOMIN ALBEDOMAX Z0MIN Z0MAX ZTOPV ZBOTV' +1, .10, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .15, .15, .50, .50, 0.00, 0.00, 'Urban and Built-Up Land' +2, .80, 3, 40., 100., 36.25, 0.04, 66., 1.56, 5.68, .920, .985, .17, .23, .05, .15, 0.50, 0.01, 'Dryland Cropland and Pasture' +3, .80, 3, 40., 100., 36.25, 0.04, 66., 1.56, 5.68, .930, .985, .20, .25, .02, .10, 0.50, 0.01, 'Irrigated Cropland and Pasture' +4, .80, 3, 40., 100., 36.25, 0.04, 66., 1.00, 4.50, .920, .985, .18, .23, .05, .15, 0.50, 0.01, 'Mixed Dryland/Irrigated Cropland and Pasture' +5, .80, 3, 40., 100., 36.25, 0.04, 68., 2.29, 4.29, .920, .980, .18, .23, .05, .14, 0.50, 0.01, 'Cropland/Grassland Mosaic' +6, .80, 3, 70., 65., 44.14, 0.04, 60., 2.00, 4.00, .930, .985, .16, .20, .20, .20, 0.50, 0.01, 'Cropland/Woodland Mosaic' +7, .80, 3, 40., 100., 36.35, 0.04, 70., 0.52, 2.90, .920, .960, .19, .23, .10, .12, 0.50, 0.01, 'Grassland' +8, .70, 3, 300., 100., 42.00, 0.03, 60., 0.50, 3.66, .930, .930, .25, .30, .01, .05, 0.50, 0.10, 'Shrubland' +9, .70, 3, 170., 100., 39.18, 0.035, 65., 0.60, 2.60, .930, .950, .22, .30, .01, .06, 0.50, 0.10, 'Mixed Shrubland/Grassland' +10, .50, 3, 70., 65., 54.53, 0.04, 50., 0.50, 3.66, .920, .920, .20, .20, .15, .15, 5.00, 0.10, 'Savanna' +11, .80, 4, 100., 30., 54.53, 0.08, 58., 1.85, 3.31, .930, .930, .16, .17, .50, .50, 20.0, 11.5, 'Deciduous Broadleaf Forest' +12, .70, 4, 150., 30., 47.35, 0.08, 54., 1.00, 5.16, .930, .940, .14, .15, .50, .50, 14.0, 7.0, 'Deciduous Needleleaf Forest' +13, .95, 4, 150., 30., 41.69, 0.08, 35., 3.08, 6.48, .950, .950, .12, .12, .50, .50, 35.0, 1.0, 'Evergreen Broadleaf Forest' +14, .70, 4, 125., 30., 47.35, 0.08, 52., 5.00, 6.40, .950, .950, .12, .12, .50, .50, 17.0, 8.5, 'Evergreen Needleleaf Forest' +15, .80, 4, 125., 30., 51.93, 0.08, 53., 2.80, 5.50, .930, .970, .17, .25, .20, .50, 18.0, 10.0, 'Mixed Forest' +16, .00, 0, 100., 30., 51.75, 0.01, 70., 0.01, 0.01, .980, .980, .08, .08, 0.0001, 0.0001, 0.00, 0.00, 'Water Bodies' +17, .60, 2, 40., 100., 60.00, 0.01, 68., 1.50, 5.65, .950, .950, .14, .14, .20, .20, 0.50, 0.01, 'Herbaceous Wetland' +18, .60, 2, 100., 30., 51.93, 0.02, 50., 2.00, 5.80, .950, .950, .14, .14, .40, .40, 20.0, 11.5, 'Wooded Wetland' +19, .01, 1, 999., 999., 999.0, 0.02, 75., 0.10, 0.75, .900, .900, .38, .38, .01, .01, 0.02, 0.01, 'Barren or Sparsely Vegetated' +20, .60, 3, 150., 100., 42.00, 0.025, 68., 0.41, 3.35, .920, .920, .15, .20, .10, .10, 0.50, 0.01, 'Herbaceous Tundra' +21, .60, 3, 150., 100., 42.00, 0.025, 55., 0.41, 3.35, .930, .930, .15, .20, .30, .30, 10.0, 0.10, 'Wooded Tundra' +22, .60, 3, 150., 100., 42.00, 0.025, 60., 0.41, 3.35, .920, .920, .15, .20, .15, .15, 5.00, 0.10, 'Mixed Tundra' +23, .30, 2, 200., 100., 42.00, 0.02, 75., 0.41, 3.35, .900, .900, .25, .25, .05, .10, 0.02, 0.01, 'Bare Ground Tundra' +24, .00, 1, 999., 999., 999.0, 0.02, 82., 0.01, 0.01, .950, .950, .55, .70, 0.001, 0.001, 0.00, 0.00, 'Snow or Ice' +25, .50, 1, 40., 100., 36.25, 0.02, 75., 0.01, 0.01, .890, .890, .30, .30, .01, .01, 0.00, 0.00, 'Playa' +26, .00, 0, 999., 999., 999.0, 0.02, 75., 0.01, 0.01, .880, .880, .16, .16, .15, .15, 0.00, 0.00, 'Lava' +27, .00, 0, 999., 999., 999.0, 0.02, 75., 0.01, 0.01, .830, .830, .60, .60, .01, .01, 0.00, 0.00, 'White Sand' +TOPT_DATA +298.0 +CMCMAX_DATA +0.5E-3 +CFACTR_DATA +0.5 +RSMAX_DATA +5000.0 +BARE +19 +NATURAL +5 +CROP +3 +LOW_DENSITY_RESIDENTIAL +31 +HIGH_DENSITY_RESIDENTIAL +32 +HIGH_INTENSITY_INDUSTRIAL +33 +Vegetation Parameters +MODIFIED_IGBP_MODIS_NOAH +20,1, 'SHDFAC NROOT RS RGL HS SNUP MAXALB LAIMIN LAIMAX EMISSMIN EMISSMAX ALBEDOMIN ALBEDOMAX Z0MIN Z0MAX ZTOPV ZBOTV' +1 .70, 4, 125., 30., 47.35, 0.08, 52., 5.00, 6.40, .950, .950, .12, .12, .50, .50, 17.0, 8.5, 'Evergreen Needleleaf Forest' +2, .95, 4, 150., 30., 41.69, 0.08, 35., 3.08, 6.48, .950, .950, .12, .12, .50, .50, 35.0, 1.0, 'Evergreen Broadleaf Forest' +3, .70, 4, 150., 30., 47.35, 0.08, 54., 1.00, 5.16, .930, .940, .14, .15, .50, .50, 14.0, 7.0, 'Deciduous Needleleaf Forest' +4, .80, 4, 100., 30., 54.53, 0.08, 58., 1.85, 3.31, .930, .930, .16, .17, .50, .50, 20.0, 11.5, 'Deciduous Broadleaf Forest' +5, .80, 4, 125., 30., 51.93, 0.08, 53., 2.80, 5.50, .930, .970, .17, .25, .20, .50, 18.0, 10.0, 'Mixed Forests' +6, .70, 3, 300., 100., 42.00, 0.03, 60., 0.50, 3.66, .930, .930, .25, .30, .01, .05, 0.50, 0.10, 'Closed Shrublands' +7, .70, 3, 170., 100., 39.18, 0.035, 65., 0.60, 2.60, .930, .950, .22, .30, .01, .06, 0.50, 0.10, 'Open Shrublands' +8, .70, 3, 300., 100., 42.00, 0.03, 60., 0.50, 3.66, .930, .930, .25, .30, .01, .05, 0.50, 0.10, 'Woody Savannas' +9, .50, 3, 70., 65., 54.53, 0.04, 50., 0.50, 3.66, .920, .920, .20, .20, .15, .15, 0.50, 0.10, 'Savannas' +10, .80, 3, 40., 100., 36.35, 0.04, 70., 0.52, 2.90, .920, .960, .19, .23, .10, .12, 0.50, 0.01, 'Grasslands' +11 .60, 2, 70., 65., 55.97 0.015 59., 1.75, 5.72, .950, .950, .14, .14, .30, .30, 0.00, 0.00, 'Permanent wetlands' +12, .80, 3, 40., 100., 36.25, 0.04, 66., 1.56, 5.68, .920, .985, .17, .23, .05, .15, 0.50, 0.01, 'Croplands' +13, .10, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .15, .15, .50, .50, 0.00, 0.00, 'Urban and Built-Up' +14 .80, 3, 40., 100., 36.25, 0.04, 68., 2.29, 4.29, .920, .980, .18, .23, .05, .14, 0.50, 0.01, 'cropland/natural vegetation mosaic' +15, .00, 1, 999., 999., 999.0, 0.02, 82., 0.01, 0.01, .950, .950, .55, .70, 0.001, 0.001, 0.00, 0.00, 'Snow and Ice' +16, .01, 1, 999., 999., 999.0, 0.02, 75., 0.10, 0.75, .900, .900, .38, .38, .01, .01, 0.02, 0.01, 'Barren or Sparsely Vegetated' +17, .00, 0, 100., 30., 51.75, 0.01, 70., 0.01, 0.01, .980, .980, .08, .08, 0.0001, 0.0001, 0.00, 0.00, 'Water' +18, .60, 3, 150., 100., 42.00, 0.025, 55., 0.41, 3.35, .930, .930, .15, .20, .30, .30, 10.0, 0.10, 'Wooded Tundra' +19, .60, 3, 150., 100., 42.00, 0.025, 60., 0.41, 3.35, .920, .920, .15, .20, .15, .15, 5.00, 0.10, 'Mixed Tundra' +20, .30, 2, 200., 100., 42.00, 0.02, 75., 0.41, 3.35, .900, .900, .25, .25, .05, .10, 0.02, 0.01, 'Barren Tundra' +TOPT_DATA +298.0 +CMCMAX_DATA +0.5E-3 +CFACTR_DATA +0.5 +RSMAX_DATA +5000.0 +BARE +16 +NATURAL +14 +CROP +12 +LOW_DENSITY_RESIDENTIAL +31 +HIGH_DENSITY_RESIDENTIAL +32 +HIGH_INTENSITY_INDUSTRIAL +33 +Vegetation Parameters +NLCD40 +40,1, 'SHDFAC NROOT RS RGL HS SNUP MAXALB LAIMIN LAIMAX EMISSMIN EMISSMAX ALBEDOMIN ALBEDOMAX Z0MIN Z0MAX ZTOPV ZBOTV' +1, .70, 4, 125., 30., 47.35, 0.08, 52., 5.00, 6.40, .950, .950, .12, .12, .50, .50, 17.00, 8.50, 'Evergreen Needleleaf Forest' +2, .95, 4, 150., 30., 41.69, 0.08, 35., 3.08, 6.48, .950, .950, .12, .12, .50, .50, 35.00, 1.00, 'Evergreen Broadleaf Forest' +3, .70, 4, 150., 30., 47.35, 0.08, 54., 1.00, 5.16, .930, .940, .14, .15, .50, .50, 14.00, 7.00, 'Deciduous Needleleaf Forest' +4, .80, 4, 100., 30., 54.53, 0.08, 58., 1.85, 3.31, .930, .930, .16, .17, .50, .50, 20.00, 11.50, 'Deciduous Broadleaf Forest' +5, .80, 4, 125., 30., 51.93, 0.08, 53., 2.80, 5.50, .930, .970, .17, .25, .20, .50, 18.00, 10.00, 'Mixed Forest' +6, .70, 3, 300., 100., 42.00, 0.03, 60., 0.50, 3.66, .930, .930, .25, .30, .01, .05, 0.50, 0.10, 'Closed Shrubland' +7, .70, 3, 170., 100., 39.18, 0.035, 65., 0.60, 2.60, .930, .950, .22, .30, .01, .06, 0.50, 0.10, 'Open Shrubland' +8, .50, 3, 70., 65., 54.53, 0.04, 50., 0.50, 3.66, .930, .930, .25, .30, .01, .05, 0.00, 0.00, 'Woody Savanna' +9, .50, 3, 70., 65., 54.53, 0.04, 50., 0.50, 3.66, .920, .920, .20, .20, .15, .15, 0.50, 0.10, 'Savanna' +10, .80, 3, 40., 100., 36.35, 0.04, 70., 0.52, 2.90, .920, .960, .19, .23, .10, .12, 0.50, 0.10, 'Grassland' +11, .60, 2, 100., 30., 51.93, 0.02, 50., 1.75, 5.72, .950, .950, .14, .14, .30, .30, 0.50, 0.10, 'Permanent Wetland' +12, .80, 3, 40., 100., 36.25, 0.04, 66., 1.50, 5.68, .920, .985, .15, .23, .05, .15, 0.50, 0.10, 'Cropland' +13, .10, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .15, .15, .50, .50, 0.00, 0.00, 'Urban and Built-Up' +14, .80, 3, 40., 100., 36.25, 0.04, 66., 2.29, 4.29, .920, .980, .18, .23, .05, .14, 0.50, 0.10, 'Cropland / Natural Veg. Mosaic' +15, .00, 1, 999., 999., 999.0, 0.02, 82., 0.01, 0.01, .950, .950, .55, .70, 0.001, 0.001, 0.00, 0.00, 'Permanent Snow' +16, .01, 1, 999., 999., 999.0, 0.02, 75., 0.10, 0.75, .900, .900, .38, .38, .01, .01, 0.02, 0.01, 'Barren / Sparsely Vegetated' +17, .00, 0, 100., 30., 51.75, 0.01, 70., 0.01, 0.01, .980, .980, .08, .08, 0.0001, 0.0001, 0.00, 0.00, 'IGBP Water' +18, .00, 0, 999., 999., 999.0, 999., 999., 999.0, 999.0, 999., 999.0, 999.0, 999.0, 999.0, 999.0, 0.00, 0.00, 'Unclassified' +19, .00, 0, 999., 999., 999.0, 999., 999., 999.0, 999.0, 999., 999.0, 999.0, 999.0, 999.0, 999.0, 0.00, 0.00, 'Fill Value' +20, .00, 0, 999., 999., 999.0, 999., 999., 999.0, 999.0, 999., 999.0, 999.0, 999.0, 999.0, 999.0, 0.00, 0.00, 'Unclassified' +21, .00, 0, 100., 30., 51.75, 0.01, 70., 0.01, 0.01, .980, .980, .08, .08, 0.0001, 0.0001, 0.00, 0.00, 'Open Water' +22, .00, 1, 999., 999., 999.0, 0.02, 82., 0.01, 0.01, .950, .950, .55, .70, 0.001, 0.001, 0.00, 0.00, 'Perennial Ice/Snow' +23, .30, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .20, .20, .50, .50, 0.00, 0.00, 'Developed Open Space' +24, .27, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .20, .20, .70, .70, 0.00, 0.00, 'Developed Low Intensity' +25, .02, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .20, .20, 1.5, 1.5, 0.00, 0.00, 'Developed Medium Intensity' +26, .11, 1, 200., 999., 999.0, 0.04, 46., 1.00, 1.00, .880, .880, .20, .20, 2.0, 2.0, 0.00, 0.00, 'Developed High Intensity' +27, .01, 1, 999., 999., 999.0, 0.02, 75., 0.10, 0.75, .900, .900, .38, .38, .01, .01, 0.02, 0.01, 'Barren Land' +28, .80, 4, 125., 30., 54.70, 0.08, 56., 1.00, 5.16, .930, .940, .14, .17, .50, .50, 20.00, 11.50, 'Deciduous Forest' +29, .95, 4, 140., 30., 44.00, 0.08, 42., 3.08, 6.48, .950, .950, .12, .12, .50, .50, 17.00, 8.50, 'Evergreen Forest' +30, .80, 4, 125., 30., 51.93, 0.08, 53., 2.80, 5.50, .930, .970, .17, .25, .20, .50, 18.00, 10.00, 'Mixed Forest' +31, .70, 3, 170., 100., 39.18, 0.035, 65., 1.00, 4.00, .930, .950, .16, .30, .01, .04, 0.50, 0.10, 'Dwarf Scrub' +32, .70, 3, 300., 100., 42.00, 0.03, 60., 0.50, 3.66, .930, .930, .22, .30, .01, .05, 0.50, 0.10, 'Shrub/Scrub' +33, .80, 3, 40., 100., 36.35, 0.04, 70., 0.52, 2.90, .920, .960, .19, .23, .10, .12, 0.50, 0.10, 'Grassland/Herbaceous' +34, .60, 2, 40., 100., 60.00, 0.01, 68., 1.50, 5.65, .950, .950, .14, .14, .20, .20, 0.50, 0.10, 'Sedge/Herbaceous' +35, .60, 2, 40., 100., 60.00, 0.01, 68., 1.00, 2.00, .950, .950, .31, .31, .01, .01, 0.00, 0.00, 'Lichens' +36, .60, 2, 40., 100., 60.00, 0.01, 68., 1.00, 2.00, .950, .950, .24, .24, .01, .01, 0.00, 0.00, 'Moss' +37, .80, 3, 40., 100., 36.25, 0.04, 66., 1.56, 5.68, .920, .985, .17, .23, .05, .15, 0.50, 0.10, 'Pasture/Hay' +38, .80, 3, 40., 100., 36.25, 0.04, 66., 1.56, 5.68, .930, .985, .20, .25, .02, .10, 0.50, 0.10, 'Cultivated Crops' +39, .60, 2, 100., 30., 51.93, 0.02, 50., 0.70, 3.50, .950, .950, .14, .14, .40, .40, 20.00, 11.50, 'Woody Wetland' +40, .60, 2, 40., 100., 60.00, 0.01, 68., 0.70, 3.50, .950, .950, .12, .12, .20, .20, 0.50, 0.10, 'Emergent Herbaceous Wetland' +TOPT_DATA +298.0 +CMCMAX_DATA +0.5E-3 +CFACTR_DATA +0.5 +RSMAX_DATA +5000.0 +BARE +16 +NATURAL +14 +CROP +12 +LOW_DENSITY_RESIDENTIAL +24 +HIGH_DENSITY_RESIDENTIAL +26 +HIGH_INTENSITY_INDUSTRIAL +99 +Vegetation Parameters +USGS-RUC +28,1, 'ALBEDO Z0 LEMI PC SHDFAC IFOR RS RGL HS SNUP LAI MAXALB' +1, .18, 1.0, .88, .40, .10, 9, 200., 999., 999.0, 0.04, 1.00, 40., 'Urban and Built-Up Land' +2, .17, .06, .92, .30, .80, 7, 40., 100., 36.25, 0.04, 5.68, 64., 'Dryland Cropland and Pasture' +3, .18, .075, .92, .40, .80, 7, 40., 100., 36.25, 0.04, 5.68, 64., 'Irrigated Cropland and Pasture' +4, .18, .125, .92, .40, .80, 7, 40., 100., 36.25, 0.04, 4.50, 64., 'Mixed Dryland/Irrigated Cropland and Pasture' +5, .18, .15, .92, .40, .80, 3, 40., 100., 36.25, 0.04, 4.29, 64., 'Cropland/Grassland Mosaic' +6, .16, .20, .93, .40, .80, 3, 70., 65., 44.14, 0.04, 4.00, 60., 'Cropland/Woodland Mosaic' +7, .19, .075 .92, .40, .80, 5, 40., 100., 36.35, 0.04, 2.90, 64., 'Grassland' +8, .22, .10, .88, .40, .70, 4, 300., 100., 42.00, 0.03, 3.66, 69., 'Shrubland' +9, .20, .11, .90, .40, .70, 4, 170., 100., 39.18, 0.035, 2.60, 67., 'Mixed Shrubland/Grassland' +10, .20, .15, .92, .40, .50, 5, 70., 65., 54.53, 0.04, 3.66, 45., 'Savanna' +11, .16, .70, .93, .55, .80, 3, 100., 30., 54.53, 0.08, 3.31, 58., 'Deciduous Broadleaf Forest' +12, .14, .70, .94, .55, .70, 4, 150., 30., 47.35, 0.08, 5.16, 54., 'Deciduous Needleleaf Forest' +13, .12, .70, .95, .55, .95, 2, 150., 30., 41.69, 0.08, 6.48, 32., 'Evergreen Broadleaf Forest' +14, .12, .70, .95, .55, .70, 1, 125., 30., 47.35, 0.08, 6.40, 52., 'Evergreen Needleleaf Forest' +15, .13, .70, .94, .55, .80, 2, 125., 30., 51.93, 0.08, 5.50, 53., 'Mixed Forest' +16, .08, .0001, .98, .00, .00, 9, 100., 30., 51.75, 0.01, 0.01, 70., 'Water Bodies' +17, .14, .20, .95, .55, .60, 4, 40., 100., 60.00, 0.01, 5.65, 35., 'Herbaceous Wetland' +18, .14, .40, .95, .55, .60, 4, 100., 30., 51.93, 0.02, 5.80, 30., 'Wooded Wetland' +19, .25, .05, .85, .30, .01, 5, 999., 999., 999.0, 0.02, 0.75, 69., 'Barren or Sparsely Vegetated' +20, .15, .10, .92, .30, .60, 5, 150., 100., 42.00, 0.025, 3.35, 58., 'Herbaceous Tundra' +21, .15, .15, .93, .40, .60, 5, 150., 100., 42.00, 0.025, 3.35, 55., 'Wooded Tundra' +22, .15, .10, .92, .40, .60, 5, 150., 100., 42.00, 0.025, 3.35, 55., 'Mixed Tundra' +23, .25, .065, .85, .30, .30, 5, 200., 100., 42.00, 0.02, 3.35, 65., 'Bare Ground Tundra' +24, .55, .0024, .98, .00, .00, 9, 999., 999., 999.0, 0.02, 0.01, 75., 'Snow or Ice' +25, .30, .01, .85, .30, .50, 9, 40., 100., 36.25, 0.02, 0.01, 69., 'Playa' +26, .16, .15, .85, .00, .00, 9, 999., 999., 999.0, 0.02, 0.01, 69., 'Lava' +27, .60, .01, .90, .00, .00, 9, 999., 999., 999.0, 0.02, 0.01, 69., 'White Sand' +28, .08, .0001, .98, .00, .00, 9, 100., 30., 51.75, 0.01, 0.01, 70., 'Lakes' +TOPT_DATA +298.0 +CMCMAX_DATA +0.2E-3 +CFACTR_DATA +0.5 +RSMAX_DATA +5000.0 +BARE +19 +NATURAL +5 +CROP +3 +URBAN +1 +Vegetation Parameters +MODI-RUC +21,1, 'ALBEDO Z0 LEMI PC SHDFAC IFOR RS RGL HS SNUP LAI MAXALB' +1 .12, .70, .950, .55, .70, 1, 125., 30., 47.35, 0.08, 6.40, 52., 'Evergreen Needleleaf Forest' +2, .12, .70, .950, .55, .95, 2, 150., 30., 41.69, 0.08, 6.48, 35., 'Evergreen Broadleaf Forest' +3, .14, .70, .940, .55, .70, 4, 150., 30., 47.35, 0.08, 5.16, 54., 'Deciduous Needleleaf Forest' +4, .16, .70, .930, .55, .80, 3, 100., 30., 54.53, 0.08, 3.31, 58., 'Deciduous Broadleaf Forest' +5, .13, .70, .940, .55, .80, 2, 125., 30., 51.93, 0.08, 5.50, 53., 'Mixed Forests' +6, .22, .10, .930, .40, .70, 4, 300., 100., 42.00, 0.03, 3.66, 60., 'Closed Shrublands' +7, .20, .10, .880, .40, .70, 4, 170., 100., 39.18, 0.035, 2.60, 65., 'Open Shrublands' +8, .20, .15, .930, .40, .70, 5, 300., 100., 42.00, 0.03, 3.66, 60., 'Woody Savannas' +9, .20, .15, .920, .40, .50, 5, 70., 65., 54.53, 0.04, 3.66, 50., 'Savannas' +10, .19, .075, .920, .40, .80, 5, 40., 100., 36.35, 0.04, 2.90, 70., 'Grasslands' +11 .14, .30, .950, .40, .60, 4, 70., 65., 55.97 0.015 5.72, 59., 'Permanent wetlands' +12, .18, .20, .935, .40, .80, 7, 40., 100., 36.25, 0.04, 5.68, 66., 'Croplands' +13, .18, 1.0, .880, .40, .10, 9, 200., 999., 999.0, 0.04, 1.00, 46., 'Urban and Built-Up' +14 .16, .20, .920, .40, .80, 7, 40., 100., 36.25, 0.04, 4.29, 68., 'cropland/natural vegetation mosaic' +15, .55, .011, .980, .00, .00, 9, 999., 999., 999.0, 0.02, 0.01, 82., 'Snow and Ice' +16, .25, .065, .850, .30, .01, 5, 999., 999., 999.0, 0.02, 0.75, 75., 'Barren or Sparsely Vegetated' +17, .08, .0001, .980, .00, .00, 9, 100., 30., 51.75, 0.01, 0.01, 70., 'Water' +18, .15, .15, .930, .40, .60, 5, 150., 100., 42.00, 0.025, 3.35, 55., 'Wooded Tundra' +19, .15, .10, .920, .40, .60, 5, 150., 100., 42.00, 0.025, 3.35, 60., 'Mixed Tundra' +20, .15, .06, .900, .30, .30, 5, 200., 100., 42.00, 0.02, 3.35, 75., 'Barren Tundra' +21, .08, .0001, .980, .00, .00, 9, 100., 30., 51.75, 0.01, 0.01, 70., 'Lakes' +TOPT_DATA +298.0 +CMCMAX_DATA +0.2E-3 +CFACTR_DATA +0.5 +RSMAX_DATA +5000.0 +BARE +16 +NATURAL +10 +CROP +12 +URBAN +13 diff --git a/parm/forecast/regional/diag_table.tmp b/parm/forecast/regional/diag_table.tmp index 190ef4398..457c451e0 100644 --- a/parm/forecast/regional/diag_table.tmp +++ b/parm/forecast/regional/diag_table.tmp @@ -303,7 +303,7 @@ "gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 -# Reflectivity from GFDL microphysics +# Reflectivity from microphysics "gfs_phys", "refl_10cm", "refl_10cm", "fv3_history2d", "all", .false., "none", 2 #Max/Min must be kept in separate files. Time is controlled by diag_table diff --git a/parm/forecast/regional/input.nml.tmp b/parm/forecast/regional/input.nml.tmp index eac4a4b7f..5b523b19b 100644 --- a/parm/forecast/regional/input.nml.tmp +++ b/parm/forecast/regional/input.nml.tmp @@ -174,7 +174,8 @@ redrag = .true. dspheat = .true. hybedmf = .true. - moninq_fac = -1.0 + hurr_pbl = .T. ! HWRF moninedmf + moninq_fac = -1.0 ! HWRF_moninedmf satmedmf = .false. random_clds = .false. trans_trac = .true. diff --git a/parm/forecast/regional_hafsv0p1a/input.nml.tmp b/parm/forecast/regional_hafsv0p1a/input.nml.tmp deleted file mode 100644 index 8a5325075..000000000 --- a/parm/forecast/regional_hafsv0p1a/input.nml.tmp +++ /dev/null @@ -1,333 +0,0 @@ -&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 = 60 - chksum_debug = .false. - dycore_only = .false. - fdiag = 3 - avg_max_length = 3600. - fhmax = _fhmax_ - fhout = 3 - fhmaxhf = 0 - fhouthf = 3 - ccpp_suite = '_ccpp_suite_' -/ - -&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 = 12000000, - print_memory_usage = .false. -/ - -&fv_grid_nml - grid_file = 'INPUT/grid_spec.nc' -/ - -&fv_core_nml - layout = _layoutx_,_layouty_ - io_layout = 1,1 - npx = _npx_ - npy = _npy_ - ntiles = 1 - npz = _npz_ - !grid_type = -1 - make_nh = .F. - fv_debug = .F. - range_warn = .T. - reset_eta = .F. - n_sponge = 24 - nudge_qv = .F. - nudge_dz = .F. - tau = 5. - rf_cutoff = 50.e2 - d2_bg_k1 = 0.20 - d2_bg_k2 = 0.15 - 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 = 4 - n_split = 5 - 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.04 - delt_max = 0.008 - ke_bg = 0. - do_vort_damp = .T. - 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 = 3 - warm_start = .F. - no_dycore = .false. - z_tracer = .T. - agrid_vel_rst = .true. - read_increment = .F. - res_latlon_dynamics = "fv3_increment.nc" - write_3d_diags = .true. - do_schmidt = .true. - target_lat = _target_lat_ - target_lon = _target_lon_ - stretch_fac = _stretch_fac_ - regional = .true. - bc_update_interval = _bc_update_interval_ - nrows_blend = _nrows_blend_ - full_zs_filter = .F. - n_zs_filter = 0 - nord_zs_filter = 4 -/ - -&surf_map_nml - zero_ocean = .F. - cd4 = 0.15 - cd2 = -1 - n_del2_strong = 0 - n_del2_weak = 15 - n_del4 = 2 - max_slope = 0.4 - peak_fac = 1. -/ - -&external_ic_nml - filtered_terrain = .true. - levp = _levp_ - gfs_dwinds = .true. - checker_tr = .F. - nt_checker = 0 -/ - -&gfs_physics_nml - fhzero = 3. - ldiag3d = .false. - lradar = .true. - avg_max_length = 3600. - h2o_phys = .true. - fhcyc = 24. - use_ufo = .true. - pre_rad = .false. - ncld = 5 - imp_physics = 11 - pdfcld = .false. - fhswr = 900. - fhlwr = 900. - ialb = 1 - iems = 1 - iaer = 111 - ico2 = 2 - isubc_sw = 2 - isubc_lw = 2 - isol = 2 - lwhtr = .true. - swhtr = .true. - cnvgwd = .false. - shal_cnv = .false. - cal_pre = .false. - redrag = .true. - dspheat = .true. - hybedmf = .true. - moninq_fac = -1.0 - satmedmf = .false. - random_clds = .false. - trans_trac = .true. - cnvcld = .false. - imfshalcnv = 2 - imfdeepcnv = 2 - cdmbgwd = 3.5, 0.01 - sfc_z0_type = 6 - prslrd0 = 0. - ivegsrc = 1 - isot = 1 - lsm = 1 - iopt_dveg = 2 - iopt_crs = 1 - iopt_btr = 1 - iopt_run = 1 - iopt_sfc = 1 - iopt_frz = 1 - iopt_inf = 1 - iopt_rad = 1 - iopt_alb = 2 - iopt_snf = 4 - iopt_tbot = 2 - iopt_stc = 1 - debug = .false. - oz_phys = .F. - oz_phys_2015 = .T. - nst_anl = .true. - nstf_name = _nstf_n1_,_nstf_n2_,_nstf_n3_,_nstf_n4_,_nstf_n5_ - cplflx = .F. - psautco = 0.0008, 0.0005 - prautco = 0.00015, 0.00015 - iau_delthrs = 6 - iaufhrs = 30 - iau_inc_files = '' - do_deep = .false. - lgfdlmprad = .true. - effr_in = .true. - do_sppt = .F. - do_shum = .F. - do_skeb = .F. - do_sfcperts = .F. -/ - -&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 - 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 - 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" - !FNZORC = "global_zorclim.1x1.grb", - FNALBC = "global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb", - FNALBC2 = "global_albedo4.1x1.grb", - FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", - FNTG3C = "global_tg3clim.2.6x1.5.grb", - FNVEGC = "global_vegfrac.0.144.decpercent.grb", - FNVETC = "global_vegtype.igbp.t1534.3072.1536.rg.grb", - FNSOTC = "global_soiltype.statsgo.t1534.3072.1536.rg.grb", - FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", - FNMSKH = "seaice_newland.grb", - FNTSFA = "", - FNACNA = "", - FNSNOA = "", - FNVMNC = "global_shdmin.0.144x0.144.grb", - FNVMXC = "global_shdmax.0.144x0.144.grb", - FNSLPC = "global_slope.1x1.grb", - FNABSC = "global_mxsnoalb.uariz.t1534.3072.1536.rg.grb", - 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 -/ - -&cires_ugwp_nml - knob_ugwp_solver = 2 - knob_ugwp_source = 1,1,0,0 - knob_ugwp_wvspec = 1,25,25,25 - knob_ugwp_azdir = 2,4,4,4 - knob_ugwp_stoch = 0,0,0,0 - knob_ugwp_effac = 1,1,1,1 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 1 - knob_ugwp_ndx4lh = 1 - knob_ugwp_version = 0 - launch_level = 25 -/ diff --git a/parm/forecast/regional_hwrf/data_table b/parm/forecast/regional_hwrf/data_table new file mode 100755 index 000000000..e69de29bb diff --git a/parm/forecast/regional_hwrf/diag_table.tmp b/parm/forecast/regional_hwrf/diag_table.tmp new file mode 100755 index 000000000..f554bae51 --- /dev/null +++ b/parm/forecast/regional_hwrf/diag_table.tmp @@ -0,0 +1,354 @@ +#output files +"grid_spec", -1, "months", 1, "days", "time" +#"atmos_4xdaily", 1, "hours", 1, "days", "time" +"atmos_static", -1, "hours", 1, "hours", "time" +"fv3_history", 0, "hours", 1, "hours", "time" +"fv3_history2d", 0, "hours", 1, "hours", "time" +#"ref3D", 0, "hours", 1, "hours", "time" +#"maxmin2D", 1, "hours", 1, "hours", "time" + +# +#======================= +# ATMOSPHERE DIAGNOSTICS +#======================= +### +# grid_spec +### + "dynamics", "grid_lon", "grid_lon", "grid_spec", "all", .false., "none", 2, + "dynamics", "grid_lat", "grid_lat", "grid_spec", "all", .false., "none", 2, + "dynamics", "grid_lont", "grid_lont", "grid_spec", "all", .false., "none", 2, + "dynamics", "grid_latt", "grid_latt", "grid_spec", "all", .false., "none", 2, + "dynamics", "area", "area", "grid_spec", "all", .false., "none", 2, +### +# 4x daily output +### +# "dynamics", "slp", "slp", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vort850", "vort850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vort500", "vort500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vort200", "vort200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "us", "us", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u1000", "u1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u850", "u850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u700", "u700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u500", "u500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u200", "u200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u100", "u100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u50", "u50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u10", "u10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vs", "vs", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v1000", "v1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v850", "v850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v700", "v700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v500", "v500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v200", "v200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v100", "v100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v50", "v50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v10", "v10", "atmos_4xdaily", "all", .false., "none", 2 +#### +# "dynamics", "tm", "tm", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t1000", "t1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t850", "t850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t700", "t700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t500", "t500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t200", "t200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t100", "t100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 +#### +# "dynamics", "z1000", "z1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z850", "z850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z700", "z700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z500", "z500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z200", "z200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z100", "z100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z50", "z50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "z10", "z10", "atmos_4xdaily", "all", .false., "none", 2 +#### +#"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w200", "w200", "atmos_4xdaily", "all", .false., "none", 2 +#### +# "dynamics", "q1000", "q1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q850", "q850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q700", "q700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q500", "q500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q200", "q200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q100", "q100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q50", "q50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q10", "q10", "atmos_4xdaily", "all", .false., "none", 2 +#### +# "dynamics", "rh1000", "rh1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh850", "rh850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh700", "rh700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh500", "rh500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh200", "rh200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg1000", "omg1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg850", "omg850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg700", "omg700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg500", "omg500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg200", "omg200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg100", "omg100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg50", "omg50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg10", "omg10", "atmos_4xdaily", "all", .false., "none", 2 +#### +# "dynamics", "cape", "sbcape", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "cin", "sbcin", "atmos_4xdaily", "all", .false., "none", 2 +### +# gfs static data +### + "dynamics", "pk", "pk", "atmos_static", "all", .false., "none", 2 + "dynamics", "bk", "bk", "atmos_static", "all", .false., "none", 2 + "dynamics", "hyam", "hyam", "atmos_static", "all", .false., "none", 2 + "dynamics", "hybm", "hybm", "atmos_static", "all", .false., "none", 2 + "dynamics", "zsurf", "zsurf", "atmos_static", "all", .false., "none", 2 +### +# FV3 variabls needed for NGGPS evaluation +### +"gfs_dyn", "ucomp", "ugrd", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "vcomp", "vgrd", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "sphum", "spfh", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "temp", "tmp", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "liq_wat", "clwmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "o3mr", "o3mr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "delp", "dpres", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "delz", "delz", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "w", "dzdt", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "ice_wat", "icmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "q_rimef", "qrim", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "ps", "pressfc", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "hs", "hgtsfc", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ice_nc", "nicp", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "rain_nc", "ntrnc", "fv3_history", "all", .false., "none", 2 + +### +# Max hourly fields +### +"gfs_dyn", "wmaxup", "upvvelmax", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "wmaxdn", "dnvvelmax", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "uhmax03", "uhmax03", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "uhmax25", "uhmax25", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "uhmin03", "uhmin03", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "uhmin25", "uhmin25", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "maxvort01", "maxvort01", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "maxvort02", "maxvort02", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "maxvorthy1", "maxvorthy1", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "ustm", "ustm", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "vstm", "vstm", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "srh01", "srh01", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "srh03", "srh03", "fv3_history", "all", .false., "none", 2 + +"gfs_phys", "u10max", "u10max", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "v10max", "v10max", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spd10max", "spd10max", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "refdmax", "refdmax", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "refdmax263k", "refdmax263k", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "t02max", "t02max", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "t02min", "t02min", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "rh02max", "rh02max", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "rh02min", "rh02min", "fv3_history2d", "all", .false., "none", 2 + + +"gfs_phys", "ALBDO_ave", "albdo_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cnvprcp_ave", "cprat_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cnvprcpb_ave", "cpratb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "totprcp_ave", "prate_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "totprcpb_ave", "prateb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DLWRF", "dlwrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DLWRFI", "dlwrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRF", "ulwrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRFI", "ulwrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRF", "dswrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRFI", "dswrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRF", "uswrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRFI", "uswrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRFtoa", "dswrf_avetoa","fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRFtoa", "uswrf_avetoa","fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRFtoa", "ulwrf_avetoa","fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "gflux_ave", "gflux_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "hpbl", "hpbl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "lhtfl_ave", "lhtfl_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "shtfl_ave", "shtfl_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pwat", "pwatclm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "soilm", "soilm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_aveclm", "tcdc_aveclm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avebndcl", "tcdc_avebndcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avehcl", "tcdc_avehcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avelcl", "tcdc_avelcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avemcl", "tcdc_avemcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDCcnvcl", "tcdccnvcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PREScnvclt", "prescnvclt", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PREScnvclb", "prescnvclb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avehct", "pres_avehct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avehcb", "pres_avehcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avehct", "tmp_avehct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avemct", "pres_avemct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avemcb", "pres_avemcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avemct", "tmp_avemct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avelct", "pres_avelct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avelcb", "pres_avelcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avelct", "tmp_avelct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "u-gwd_ave", "u-gwd_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "v-gwd_ave", "v-gwd_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "dusfc", "uflx_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "dvsfc", "vflx_ave", "fv3_history2d", "all", .false., "none", 2 + +"gfs_phys", "psurf", "pressfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "u10m", "ugrd10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "v10m", "vgrd10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "crain", "crain", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_ice", "f_ice", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_rain", "f_rain", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "f_rimef", "f_rimef", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tprcp", "tprcp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "hgtsfc", "orog", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "weasd", "weasd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "f10m", "f10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "q2m", "spfh2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "t2m", "tmp2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tsfc", "tmpsfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "vtype", "vtype", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "stype", "sotyp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slmsksfc", "land", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "vfracsfc", "veg", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "zorlsfc", "sfcr", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "uustar", "fricv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt1", "soilt1" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt2", "soilt2" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt3", "soilt3" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt4", "soilt4" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw1", "soilw1" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw2", "soilw2" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw3", "soilw3" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw4", "soilw4" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_1", "soill1", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_2", "soill2", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_3", "soill3", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_4", "soill4", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slope", "sltyp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alnsf", "alnsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alnwf", "alnwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alvsf", "alvsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alvwf", "alvwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "canopy", "cnwat", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "facsf", "facsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "facwf", "facwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "ffhh", "ffhh", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "ffmm", "ffmm", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "fice", "icec", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "hice", "icetk", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "snoalb", "snoalb", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "shdmax", "shdmax", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "shdmin", "shdmin", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "snowd", "snod", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tg3", "tg3", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tisfc", "tisfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tref", "tref", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "z_c", "zc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "c_0", "c0", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "c_d", "cd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "w_0", "w0", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "w_d", "wd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xt", "xt", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xz", "xz", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "dt_cool", "dtcool", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xs", "xs", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xu", "xu", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xv", "xv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xtts", "xtts", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xzts", "xzts", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "d_conv", "dconv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "qrain", "qrain", "fv3_history2d", "all", .false., "none", 2 + +"gfs_phys", "acond", "acond", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cduvb_ave", "cduvb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cpofp", "cpofp", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "duvb_ave", "duvb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csdlf_ave", "csdlf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csusf_ave", "csusf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csusf_avetoa", "csusftoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csdsf_ave", "csdsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csulf_ave", "csulf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csulf_avetoa", "csulftoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cwork_ave", "cwork_aveclm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "evbs_ave", "evbs_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "evcw_ave", "evcw_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "fldcp", "fldcp", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "hgt_hyblev1", "hgt_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfh_hyblev1", "spfh_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ugrd_hyblev1", "ugrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vgrd_hyblev1", "vgrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmp_hyblev1", "tmp_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "gfluxi", "gflux", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "lhtfl", "lhtfl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "shtfl", "shtfl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pevpr", "pevpr", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pevpr_ave", "pevpr_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sbsno_ave", "sbsno_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sfexc", "sfexc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "snohf", "snohf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "snowc_ave", "snowc_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfhmax2m", "spfhmax_max2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfhmin2m", "spfhmin_min2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmpmax2m", "tmax_max2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmpmin2m", "tmin_min2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ssrun_acc", "ssrun_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sunsd_acc", "sunsd_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "watr_acc", "watr_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "wilt", "wilt", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vbdsf_ave", "vbdsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vddsf_ave", "vddsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "nbdsf_ave", "nbdsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 +#HWRF +#"gfs_phys", "cleffr", "cleffr", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "cieffr", "cieffr", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "cseffr", "cseffr", "fv3_history2d", "all", .false., "none", 2 +# +# Reflectivity from microphysics +"gfs_phys", "refl_10cm", "refl_10cm", "fv3_history2d", "all", .false., "none", 2 + +#Max/Min must be kept in separate files. Time is controlled by diag_table +# "dynamics", "uh25", "MXUPHL2_5km", "maxmin2D", "all", max, "none", 2 +# "dynamics", "uh25", "MNUPHL2_5km", "maxmin2D", "all", min, "none", 2 +# "dynamics", "max_reflectivity", "MAXREFC", "maxmin2D", "all", max, "none", 2 +# "dynamics", "base_reflectivity", "MAXREF_1km", "maxmin2D", "all", max, "none", 2 +# +#============================================================================================= +# +#====> This file can be used with diag_manager/v2.0a (or higher) <==== +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) diff --git a/parm/forecast/regional_hwrf/field_table b/parm/forecast/regional_hwrf/field_table new file mode 100755 index 000000000..420f4a48a --- /dev/null +++ b/parm/forecast/regional_hwrf/field_table @@ -0,0 +1,36 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic rain water mixing ratio + "TRACER", "atmos_mod", "rainwat" + "longname", "rain mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic mass weighted rime factor + "TRACER", "atmos_mod", "q_rimef" + "longname", "mass weighted rime factor" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# non-prognostic cloud amount + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud amount" + "units", "1" + "profile_type", "fixed", "surface_value=1.e30" / + diff --git a/parm/forecast/regional_hwrf/input.nml.tmp b/parm/forecast/regional_hwrf/input.nml.tmp new file mode 100755 index 000000000..984d31bcc --- /dev/null +++ b/parm/forecast/regional_hwrf/input.nml.tmp @@ -0,0 +1,345 @@ + &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 = 32 + chksum_debug = .false. + dycore_only = .false. + fdiag = 3 + avg_max_length = 3600. + fhmax = _fhmax_ + fhout = 3 + fhmaxhf = 0 + fhouthf = 3 + ccpp_suite = '_ccpp_suite_' +/ + +&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 = 12000000, + print_memory_usage = .false. +/ + + &fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + !layout = 64,30 + !layout = 40,30 + layout = _layoutx_,_layouty_ + io_layout = 1,1 + npx = _npx_ + npy = _npy_ + ntiles = 1 + npz = _npz_ + !grid_type = -1 + make_nh = .F. + fv_debug = .F. + range_warn = .T. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + nudge_dz = .F. + tau = 5. + rf_cutoff = 50.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.15 + 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 = 4 + n_split = 5 + nwat = 4 + 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.04 + delt_max = 0.008 + ke_bg = 0. + do_vort_damp = .T. + 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 = .F. + consv_am = .F. + fill = .T. + dwind_2d = .F. + print_freq = 3 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + agrid_vel_rst = .true. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + write_3d_diags = .true. + + do_schmidt = .true. + target_lat = _target_lat_ + target_lon = _target_lon_ + stretch_fac = _stretch_fac_ + regional = .true. + bc_update_interval = _bc_update_interval_ + nrows_blend = _nrows_blend_ + + full_zs_filter = .F. !unreleased feature + n_zs_filter = 0 ! safety + nord_zs_filter = 4 +/ + + &surf_map_nml + zero_ocean = .F. + cd4 = 0.15 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 15 + n_del4 = 2 + max_slope = 0.4 + peak_fac = 1. +/ + + &external_ic_nml + filtered_terrain = .true. + levp = _levp_ + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + + &gfs_physics_nml + fhzero = 3. + ldiag3d = .false. + lradar = .true. + avg_max_length = 3600. + h2o_phys = .true. + fhcyc = 0. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 15 ! F-A MP scheme + RHGRD = 1.0 ! F-A + spec_adv = .true. ! F-A + icloud = 3 ! Thompson cloud fraction + iovr_lw = 4 ! HWRF RRTMG + iovr_sw = 4 ! HWRF RRTMG + hwrf_samfdeep = .true. ! HWRF SASdeep + hwrf_samfshal = .true. ! HWRF SASshal + asolfac_deep = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + asolfac_shal = 0.89 ! HWRF SASdeep; GFS SAS:0.958 + hurr_pbl = .T. ! HWRF moninedmf + moninq_fac = -1.0 ! HWRF moninedmf + 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 = .true. + shal_cnv = .true. ! HWRF SAS Shallow convection + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .true. + satmedmf = .false. + random_clds = .false. + trans_trac = .true. + cnvcld = .true. + imfshalcnv = 2 + imfdeepcnv = 2 + cdmbgwd = 3.5, 0.01 + sfc_z0_type = 4 !HWRF + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + lsm = 4 !HWRF + iopt_dveg = 2 + iopt_crs = 1 + iopt_btr = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_alb = 2 + iopt_snf = 4 + iopt_tbot = 2 + iopt_stc = 1 + debug = .false. + oz_phys = .F. + oz_phys_2015 = .T. + nst_anl = .true. + nstf_name = _nstf_n1_,_nstf_n2_,_nstf_n3_,_nstf_n4_,_nstf_n5_ + cplflx = .F. + psautco = 0.0008, 0.0005 + prautco = 0.00015, 0.00015 + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + do_deep = .true. + lgfdlmprad = .true. + effr_in = .true. + do_sppt = .F. + do_shum = .F. + do_skeb = .F. + do_sfcperts = .F. +/ + + &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 + 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" + !FNZORC = "global_zorclim.1x1.grb", + FNALBC = "global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb", + FNALBC2 = "global_albedo4.1x1.grb", + FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb", + FNTG3C = "global_tg3clim.2.6x1.5.grb", + FNVEGC = "global_vegfrac.0.144.decpercent.grb", + FNVETC = "global_vegtype.igbp.t1534.3072.1536.rg.grb", + FNSOTC = "global_soiltype.statsgo.t1534.3072.1536.rg.grb", + FNSMCC = "global_soilmgldas.t1534.3072.1536.grb", + FNMSKH = "seaice_newland.grb", + FNTSFA = "", + FNACNA = "", + FNSNOA = "", + FNVMNC = "global_shdmin.0.144x0.144.grb", + FNVMXC = "global_shdmax.0.144x0.144.grb", + FNSLPC = "global_slope.1x1.grb", + FNABSC = "global_mxsnoalb.uariz.t1534.3072.1536.rg.grb", + 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 +/ + + &cires_ugwp_nml + knob_ugwp_solver = 2 + knob_ugwp_source = 1,1,0,0 + knob_ugwp_wvspec = 1,25,25,25 + knob_ugwp_azdir = 2,4,4,4 + knob_ugwp_stoch = 0,0,0,0 + knob_ugwp_effac = 1,1,1,1 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_version = 0 + launch_level = 25 +/ diff --git a/parm/forecast/regional_hwrf/model_configure.tmp b/parm/forecast/regional_hwrf/model_configure.tmp new file mode 100755 index 000000000..535d4ea19 --- /dev/null +++ b/parm/forecast/regional_hwrf/model_configure.tmp @@ -0,0 +1,47 @@ +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: _dt_atmos_ +cpl: .false. +calendar: 'julian' +memuse_verbose: .false. +atmos_nthreads: NTHRD +use_hyper_thread: .false. +ncores_per_node: NCNODE +debug_affinity: .true. +restart_interval: _restart_interval_ +output_1st_tstep_rst: .false. + +quilting: _quilting_ +write_groups: _write_groups_ +write_tasks_per_group: _write_tasks_per_group_ +num_files: 2 +filename_base: 'dyn' 'phy' +output_file: 'netcdf' +write_nemsioflip: .false. +write_fsyncflag: .false. + +app_domain: '_app_domain_' +output_grid: '_OUTPUT_GRID_' +cen_lon: _CEN_LON_ # central longitude +cen_lat: _CEN_LAT_ # central latitude +lon1: _LON1_ # longitude of lower-left +lat1: _LAT1_ # latitude of lower-left +lon2: _LON2_ # longitude of upper-right +lat2: _LAT2_ # latitude of upper-right +dlon: _DLON_ +dlat: _DLAT_ + +nfhout: 3 +nfhmax_hf: -1 +nfhout_hf: 3 +nsout: -1 diff --git a/parm/forecast/regional_hwrf/nems.configure b/parm/forecast/regional_hwrf/nems.configure new file mode 100755 index 000000000..b16668ad8 --- /dev/null +++ b/parm/forecast/regional_hwrf/nems.configure @@ -0,0 +1,5 @@ +EARTH_component_list: ATM + ATM_model: fv3 + runSeq:: + ATM + :: diff --git a/parm/hafsv0p1a_al.conf b/parm/hafsv0p1a_al.conf deleted file mode 100644 index c1d60ae52..000000000 --- a/parm/hafsv0p1a_al.conf +++ /dev/null @@ -1,76 +0,0 @@ -# This is a UNIX conf file that contains ALL information relating to -# the HAFS basin-focused standalone regional configuration. -# -[config] -# Specify the domain center Latitude and Longitude -domlat=22.0 -domlon=-62.0 -# Same as domlat and domlon but vitals formatted -vitalsdomlat=220N -vitalsdomlon=620W - -# HAFS launcher requires vitals and a storm. -# This is a default minimum vitals file for a fake storm. -# The format of the missing value fields was based on the log -# output returned when running the launcher after the vitals have -# been "cleaned" up. That is, if you enter the fields as all -999 values, -# the "cleaned" output is returned. In essence I'm treating the vitals -# module as a factory in the sense that it knows the correct format. -# NHC 00L FAKE 20120710 0000 250N 0800W -99 -99 -999 -999 -099 -9 -99 -999 -999 -999 -999 M -# fakestormid is a config option set in the launcher and is the -# last storm id in the list of storms. -fakestormid=00L -fakestormname=NATL -fakestormorg=NHC -fakestorm_vitals={fakestormorg} {fakestormid} {fakestormname} {YMD} {HH}{min} {vitalsdomlat} {vitalsdomlon} -99 -99 -999 -999 -099 -9 -99 -999 -999 -999 -999 M - -ictype=gfsnemsio -bctype=gfsgrib2ab_0p25 -vcoord_file_target_grid={PARMhafs}/chgres/hafs_hyblev.l{LEVS}.txt -halo_blend=10 - -[dir] -PARMforecast={PARMhafs}/forecast/regional_hafsv0p1a - -[grid] -CASE=C768 ;; FV3 resolution -LEVS=76 ;; Model vertical levels: 65, 128, 76, 86, and 97 -gtype=regional ;; grid type: uniform, stretch, nest, or regional -# If gridfixdir is provided and the dir exists, then use the pre-generated static grid fix files under gridfixdir -gridfixdir={FIXhafs}/fix_fv3/{CASE}_hafsv0p1a -#gridfixdir=/let/hafs_grid/generate/grid -# Otherwise, will generate the model grid according to the following grid parameters -# Need for grid types: stretch, nest and regional -stretch_fac=1.0001 ;; Stretching factor for the grid -target_lon={domlon} ;; center longitude of the highest resolution tile -target_lat={domlat} ;; center latitude of the highest resolution tile -# Need for grid types: nest and regional -refine_ratio=4 ;; Specify the refinement ratio for nest grid -istart_nest=46 -jstart_nest=228 -iend_nest=1485 -jend_nest=1307 - -[forecast] -ccpp_suite_regional=HAFS_v0_gfdlmp_nocpugwd - -layoutx=48 -layouty=40 -npx=2881 -npy=2161 -npz=75 - -write_groups=1 -write_tasks_per_group=48 - -output_grid=regional_latlon -output_grid_cen_lon=-62.0 ;; central longitude -output_grid_cen_lat=22.0 ;; central latitude -output_grid_lon_span=108.0 ;; output domain span for longitude in regular latlon coordinate system (in degrees) -output_grid_lat_span=66.0 ;; output domain span for latitude in regular latlon coordinate system (in degrees) -output_grid_dlon=0.03 ;; output grid spacing dlon . . . . -output_grid_dlat=0.03 ;; output grid spacing dlat . . . . - -[rocotostr] -FORECAST_RESOURCES=FORECAST_RESOURCES_regional_{forecast/layoutx}x{forecast/layouty}io{forecast/write_groups}x{forecast/write_tasks_per_group}_omp2 - diff --git a/parm/hafsv0p1a_ep.conf b/parm/hafsv0p1a_ep.conf deleted file mode 100644 index 1dffa4921..000000000 --- a/parm/hafsv0p1a_ep.conf +++ /dev/null @@ -1,76 +0,0 @@ -# This is a UNIX conf file that contains ALL information relating to -# the HAFS basin-focused standalone regional configuration. -# -[config] -# Specify the domain center Latitude and Longitude -domlat=22.0 -domlon=-112.0 -# Same as domlat and domlon but vitals formatted -vitalsdomlat=220N -vitalsdomlon=1120W - -# HAFS launcher requires vitals and a storm. -# This is a default minimum vitals file for a fake storm. -# The format of the missing value fields was based on the log -# output returned when running the launcher after the vitals have -# been "cleaned" up. That is, if you enter the fields as all -999 values, -# the "cleaned" output is returned. In essence I'm treating the vitals -# module as a factory in the sense that it knows the correct format. -# NHC 00L FAKE 20120710 0000 250N 0800W -99 -99 -999 -999 -099 -9 -99 -999 -999 -999 -999 M -# fakestormid is a config option set in the launcher and is the -# last storm id in the list of storms. -fakestormid=00L -fakestormname=EPAC -fakestormorg=NHC -fakestorm_vitals={fakestormorg} {fakestormid} {fakestormname} {YMD} {HH}{min} {vitalsdomlat} {vitalsdomlon} -99 -99 -999 -999 -099 -9 -99 -999 -999 -999 -999 M - -ictype=gfsnemsio -bctype=gfsgrib2ab_0p25 -vcoord_file_target_grid={PARMhafs}/chgres/hafs_hyblev.l{LEVS}.txt -halo_blend=10 - -[dir] -PARMforecast={PARMhafs}/forecast/regional_hafsv0p1a - -[grid] -CASE=C768 ;; FV3 resolution -LEVS=76 ;; Model vertical levels: 65, 128, 76, 86, and 97 -gtype=regional ;; grid type: uniform, stretch, nest, or regional -# If gridfixdir is provided and the dir exists, then use the pre-generated static grid fix files under gridfixdir -#gridfixdir={FIXhafs}/fix_fv3/{CASE}_hafsv0p1a_ep -gridfixdir=/let/hafs_grid/generate/grid -# Otherwise, will generate the model grid according to the following grid parameters -# Need for grid types: stretch, nest and regional -stretch_fac=1.0001 ;; Stretching factor for the grid -target_lon={domlon} ;; center longitude of the highest resolution tile -target_lat={domlat} ;; center latitude of the highest resolution tile -# Need for grid types: nest and regional -refine_ratio=4 ;; Specify the refinement ratio for nest grid -istart_nest=46 -jstart_nest=198 -iend_nest=1485 -jend_nest=1337 - -[forecast] -ccpp_suite_regional=HAFS_v0_gfdlmp_nocpugwd - -layoutx=48 -layouty=40 -npx=2881 -npy=2161 -npz=75 - -write_groups=1 -write_tasks_per_group=48 - -output_grid=regional_latlon -output_grid_cen_lon=-112.0 ;; central longitude -output_grid_cen_lat=22.0 ;; central latitude -output_grid_lon_span=108.0 ;; output domain span for longitude in regular latlon coordinate system (in degrees) -output_grid_lat_span=66.0 ;; output domain span for latitude in regular latlon coordinate system (in degrees) -output_grid_dlon=0.03 ;; output grid spacing dlon . . . . -output_grid_dlat=0.03 ;; output grid spacing dlat . . . . - -[rocotostr] -FORECAST_RESOURCES=FORECAST_RESOURCES_regional_{forecast/layoutx}x{forecast/layouty}io{forecast/write_groups}x{forecast/write_tasks_per_group}_omp2 - diff --git a/rocoto/cronjob_hafs_rt.sh b/rocoto/cronjob_hafs_rt.sh index fd6a4c5c5..1f8c167c8 100755 --- a/rocoto/cronjob_hafs_rt.sh +++ b/rocoto/cronjob_hafs_rt.sh @@ -72,6 +72,15 @@ scrubopt="config.scrub_work=no config.scrub_com=no" config.halo_blend=10 forecast.nstf_n2=1 \ config.NHRS=12 ${scrubopt} +# Regional static NATL basin-focused configuration with the hwrf physics suite + ${PYTHON3} ./run_hafs.py -t ${dev} 2019091600 09L HISTORY \ + config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_rt_regional_static_hwrf \ + config.ictype=gfsnemsio config.bctype=gfsgrib2ab_0p25 \ + config.NHRS=12 ${scrubopt} \ + ../parm/hafs_regional_static.conf \ + dir.PARMforecast={PARMhafs}/forecast/regional_hwrf \ + forecast.ccpp_suite_regional=HAFS_v0_hwrf_nougwd + #=============================================================================== # Global-nesting static NATL basin-focused configuration with GFS nemsio format IC/BC @@ -93,6 +102,15 @@ scrubopt="config.scrub_work=no config.scrub_com=no" config.NHRS=12 ${scrubopt} \ ../parm/hafs_globnest.conf +# Global-nesting static NATL basin-focused configuration with the hwrf physics suite + ${PYTHON3} ./run_hafs.py -t ${dev} 2019091600 09L HISTORY \ + config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_rt_globnest_static_hwrf \ + config.NHRS=12 ${scrubopt} \ + ../parm/hafs_globnest_static.conf \ + dir.PARMforecast={PARMhafs}/forecast/globnest_hwrf \ + forecast.ccpp_suite_glob=HAFS_v0_hwrf \ + forecast.ccpp_suite_nest=HAFS_v0_hwrf_nougwd + #=============================================================================== # Fakestorm (e.g., NATL00L) with the regional static NATL basin-focused domain configuration diff --git a/rocoto/cronjob_hafsv0p1a_tmp.sh b/rocoto/cronjob_hafsv0p1a_tmp.sh deleted file mode 100755 index baa79e3de..000000000 --- a/rocoto/cronjob_hafsv0p1a_tmp.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -set -x -date - -# NOAA WCOSS Dell Phase3 -#HOMEhafs=/gpfs/dell2/emc/modeling/noscrub/${USER}/save/HAFS -#dev="-s sites/wcoss_dell_p3.ent -f" -#PYTHON3=/usrx/local/prod/packages/python/3.6.3/bin/python3 - -# NOAA WCOSS Cray -#HOMEhafs=/gpfs/hps3/emc/hwrf/noscrub/${USER}/save/HAFS -#dev="-s sites/wcoss_cray.ent -f" -#PYTHON3=/opt/intel/intelpython3/bin/python3 - -# NOAA RDHPCS Jet - HOMEhafs=/mnt/lfs4/HFIP/hwrfv3/${USER}/hafsv0p1a_202005 -#dev="-s sites/xjet.ent -f" - dev="-s sites/xjet_hafsv0p1a.ent -f" - PYTHON3=/apps/intel/intelpython3/bin/python3 - -# MSU Orion -#HOMEhafs=/work/noaa/hwrf/save/${USER}/HAFS -#dev="-s sites/orion.ent -f" -#PYTHON3=/apps/intel-2020/intel-2020/intelpython3/bin/python3 - -# NOAA RDHPCS Hera -#HOMEhafs=/scratch1/NCEPDEV/hwrf/save/${USER}/HAFS -#dev="-s sites/hera.ent -f" -#PYTHON3=/apps/intel/intelpython3/bin/python3 - -cd ${HOMEhafs}/rocoto - -EXPT=$(basename ${HOMEhafs}) -scrubopt="config.scrub_work=no config.scrub_com=no" - -#=============================================================================== -# hafs.v0.1a NATL - -# NATL00L2019 block# 1-1 -#${PYTHON3} ./run_hafs.py -t ${dev} 2019082406-2019082818 00L HISTORY \ -# config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_l75 \ -# ../parm/hafsv0p1a_al.conf - -# NATL00L2019 block# 1-2 -#${PYTHON3} ./run_hafs.py -t ${dev} 2019082900-2019091006 00L HISTORY \ -# config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_l75 \ -# ../parm/hafsv0p1a_al.conf - -# NATL00L2019 block# 2-1 -#${PYTHON3} ./run_hafs.py -t ${dev} 2019091212-2019092106 00L HISTORY \ -# config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_l75 \ -# ../parm/hafsv0p1a_al.conf - -# NATL00L2019 block# 2-2 -#${PYTHON3} ./run_hafs.py -t ${dev} 2019092112-2019100206 00L HISTORY \ -# config.EXPT=${EXPT} config.SUBEXPT=${EXPT}_l75 \ -# ../parm/hafsv0p1a_al.conf - -#=============================================================================== - -date - -echo 'cronjob done' diff --git a/scripts/exhafs_forecast.sh b/scripts/exhafs_forecast.sh index 73b535f4c..82829c4ad 100755 --- a/scripts/exhafs_forecast.sh +++ b/scripts/exhafs_forecast.sh @@ -112,6 +112,9 @@ for file in `ls $CO2DIR/global_co2historicaldata* ` ; do cp $file $(echo $(basename $file) |sed -e "s/global_//g") done +# Copy the fix files needed by the hwrf ccpp physics suite +cp ${PARMhafs}/forecast/hwrf_physics_fix/* . + if [ $gtype = nest ]; then #---------------------------------------------- diff --git a/sorc/build_forecast.sh b/sorc/build_forecast.sh index fbce3dacd..af37b4c80 100755 --- a/sorc/build_forecast.sh +++ b/sorc/build_forecast.sh @@ -24,7 +24,7 @@ if [ $target = wcoss_cray ]; then module load python/2.7.14; fi cd hafs_forecast.fd/ FV3=$( pwd -P )/FV3 cd tests/ -./compile.sh "$FV3" "$target" "CCPP=Y STATIC=Y SUITES=HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp_nocpugwd,HAFS_v0_gfdlmp 32BIT=Y" 32bit YES NO +./compile.sh "$FV3" "$target" "CCPP=Y STATIC=Y SUITES=HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp_nougwd,HAFS_v0_gfdlmp_nocpugwd,HAFS_v0_gfdlmp,HAFS_v0_hwrf_nougwd,HAFS_v0_hwrf 32BIT=Y" 32bit YES NO #./compile.sh "$FV3" "$target" "CCPP=Y REPRO=Y 32BIT=Y" 32bit YES NO #./compile.sh "$FV3" "$target" "CCPP=Y 32BIT=Y" 32bit YES NO #cp -p fv3_32bit.exe ../NEMS/exe/ diff --git a/sorc/hafs_forecast.fd b/sorc/hafs_forecast.fd index d2566ff5d..16f65597c 160000 --- a/sorc/hafs_forecast.fd +++ b/sorc/hafs_forecast.fd @@ -1 +1 @@ -Subproject commit d2566ff5d4dd9e9e4d3ba3583798f2fc275aa8e5 +Subproject commit 16f65597c7bad1b2f8c291e31bb0ff7535a2fd6f diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh index 2f6a96e77..d3e4f7f36 100644 --- a/sorc/machine-setup.sh +++ b/sorc/machine-setup.sh @@ -39,7 +39,7 @@ elif [[ -d /work/noaa ]] ; then # We are on MSU Orion if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 - source /apps/lmod/init/$__ms_shell + source /apps/lmod/lmod/init/$__ms_shell fi target=orion module purge diff --git a/ush/hafs_pre_job.sh.inc b/ush/hafs_pre_job.sh.inc index 8f8ffd4cf..7755ac1bf 100644 --- a/ush/hafs_pre_job.sh.inc +++ b/ush/hafs_pre_job.sh.inc @@ -66,7 +66,7 @@ elif [[ -d /work/noaa ]] ; then # We are on MSU Orion if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 - source /apps/lmod/init/$__ms_shell + source /apps/lmod/lmod/init/$__ms_shell fi target=orion module purge