From 26b0ffa860608e9578b4d63c5a69a368782e6741 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 23 Dec 2019 14:36:57 -0700 Subject: [PATCH 1/4] Update submodule pointer for FV3 --- FV3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FV3 b/FV3 index 6353b7c75e..fa72e2b054 160000 --- a/FV3 +++ b/FV3 @@ -1 +1 @@ -Subproject commit 6353b7c75e6b6c90371caf5ef542eb2e20ef3e8e +Subproject commit fa72e2b054d4d383a2c482cf5fc9a1f27f850e71 From 00d8b7718c906dba49b81e44efa72d35cb504a52 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 23 Dec 2019 16:16:10 -0700 Subject: [PATCH 2/4] Add regression test fv3_ccpp_gsd_sar_25km_debug --- parm/ccpp_gsd_sar_25km-model_configure.IN | 48 ++++ parm/ccpp_gsd_sar_25km.nml.IN | 312 ++++++++++++++++++++++ tests/fv3_conf/ccpp_gsd_sar_25km_run.IN | 35 +++ tests/rt_ccpp_gsd.conf | 7 +- tests/tests/fv3_ccpp_gsd_sar_25km_debug | 36 +++ 5 files changed, 435 insertions(+), 3 deletions(-) create mode 100644 parm/ccpp_gsd_sar_25km-model_configure.IN create mode 100644 parm/ccpp_gsd_sar_25km.nml.IN create mode 100644 tests/fv3_conf/ccpp_gsd_sar_25km_run.IN create mode 100644 tests/tests/fv3_ccpp_gsd_sar_25km_debug diff --git a/parm/ccpp_gsd_sar_25km-model_configure.IN b/parm/ccpp_gsd_sar_25km-model_configure.IN new file mode 100644 index 0000000000..d2a512c56d --- /dev/null +++ b/parm/ccpp_gsd_sar_25km-model_configure.IN @@ -0,0 +1,48 @@ +total_member: 1 +PE_MEMBER01: 24 +start_year: 2019 +start_month: 05 +start_day: 20 +start_hour: 00 +start_minute: 0 +start_second: 0 +nhours_fcst: 1 +RUN_CONTINUE: .false. +ENS_SPS: .false. +dt_atmos: 300 +cpl: .false. +calendar: 'julian' +memuse_verbose: .false. +atmos_nthreads: 2 +use_hyper_thread: .false. +ncores_per_node: 24 +debug_affinity: .true. +restart_interval: 0 +output_1st_tstep_rst: .false. + +quilting: .true. +print_esmf: .false. +write_groups: 1 +write_tasks_per_group: 4 +num_files: 2 +filename_base: 'dyn''phy' +output_file: 'netcdf' +write_nemsioflip: .false. +write_fsyncflag: .false. + +output_grid: 'lambert_conformal' +cen_lon: -97.5 +cen_lat: 38.5 +stdlat1: 38.5 +stdlat2: 38.5 +nx: 191 +ny: 97 +lon1: -120.72962370 +lat1: 25.11648583 +dx: 25000.0 +dy: 25000.0 + +nfhout: 1 +nfhmax_hf: 60 +nfhout_hf: 1 +nsout: -1 diff --git a/parm/ccpp_gsd_sar_25km.nml.IN b/parm/ccpp_gsd_sar_25km.nml.IN new file mode 100644 index 0000000000..53583e3790 --- /dev/null +++ b/parm/ccpp_gsd_sar_25km.nml.IN @@ -0,0 +1,312 @@ +&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 = 550 + chksum_debug = .false. + dycore_only = .false. + fdiag = 1 + ccpp_suite = 'FV3_GSD_SAR' +/ + +&diag_manager_nml + prepend_date = .F. +/ + +&fms_io_nml + checksum_required = .false. + max_files_r = 100, + max_files_w = 100, +/ + +&fms_nml + clock_grain = 'ROUTINE', + domains_stack_size = 3000000, + print_memory_usage = .false. +/ + +&fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + +&fv_core_nml + layout = 4,5 + io_layout = 1,1 + npx = 201 + npy = 111 + ntiles = 1, + npz = 64 + !grid_type = -1 + make_nh = .T. + fv_debug = .T. + range_warn = .T. + reset_eta = .F. + n_sponge = 24 + nudge_qv = .F. + tau = 5. + rf_cutoff = 20.e2 + d2_bg_k1 = 0.20 + d2_bg_k2 = 0.04 + kord_tm = -11 + kord_mt = 11 + kord_wz = 11 + kord_tr = 11 + hydrostatic = .F. + phys_hydrostatic = .F. + use_hydro_pressure = .F. + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = 4 + n_split = 5 + nwat = 6 + na_init = 1 + d_ext = 0.0 + dnats = 0 + fv_sg_adj = 300 + d2_bg = 0. + nord = 2 + dddmp = 0.1 + d4_bg = 0.12 + vtdm4 = 0.02 + ke_bg = 0. + do_vort_damp = .true. + external_ic = .T. + external_eta = .T. + gfs_phil = .false. + nggps_ic = .T. + mountain = .F. + ncep_ic = .F. + d_con = 1.0 + delt_max = 0.002 + 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 = 6 + warm_start = .F. + no_dycore = .false. + z_tracer = .T. + read_increment = .F. + res_latlon_dynamics = "fv3_increment.nc" + + do_schmidt = .true. + target_lat = 38.5 + target_lon = -97.5 + stretch_fac = 0.999 +! nord_zs_filter = 4 + n_zs_filter = 0 + regional = .true. + bc_update_interval = 6 + + full_zs_filter = .F. !unreleased feature + + nord_zs_filter = 4 + n_zs_filter = 0 ! safety +/ + +&surf_map_nml + zero_ocean = .F. + cd4 = 0.12 + cd2 = -1 + n_del2_strong = 0 + n_del2_weak = 2 + n_del4 = 1 + max_slope = 0.4 + peak_fac = 1. +/ + +&external_ic_nml + filtered_terrain = .true. + levp = 65 + gfs_dwinds = .true. + checker_tr = .F. + nt_checker = 0 +/ + +&gfs_physics_nml + fhzero = 1. + h2o_phys = .true. + ldiag3d = .false. + fhcyc = 0. + nst_anl = .true. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 8 +! ttendlim = 0.005 + ttendlim = 50.0 + ltaerosol = .T. + lradar = .T. + pdfcld = .false. + fhswr = 3600. + fhlwr = 3600. + ialb = 1 + iems = 1 + iaer = 111 + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .false. + shal_cnv = .false. + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .false. + satmedmf = .false. + lheatstrg = .F. + do_mynnedmf = .true. + do_mynnsfclay = .false. + random_clds = .false. + trans_trac = .true. + cnvcld = .false. + imfshalcnv = 0 + imfdeepcnv = 0 + cdmbgwd = 3.5,0.25 + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + debug = .false. + oz_phys = .false. + oz_phys_2015 = .true. + nstf_name = 2,1,1,0,5 + cplflx = .F. + iau_delthrs = 6 + iaufhrs = 30 + iau_inc_files = '' + do_sppt = .F. + do_shum = .F. + do_skeb = .F. + do_sfcperts = .F. + lsm = 3 + lsoil = 9 + lsoil_lsm = 9 + 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 + icloud_bl = 1 + bl_mynn_tkeadvect = .true. + bl_mynn_edmf = 1 + bl_mynn_edmf_mom = 1 +/ + +&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 +/ + +&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", + FNALBC = "global_snowfree_albedo.bosu.t126.384.190.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.t126.384.190.rg.grb", + FNSOTC = "global_soiltype.statsgo.t126.384.190.rg.grb", + FNSMCC = "global_soilmgldas.t126.384.190.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.t126.384.190.rg.grb", + LDEBUG =.false., + 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 + lon_s=768, + lat_s=384, + ntrunc=382, + SKEBNORM=1, + SKEB_NPASS=30, + SKEB_VDOF=5, + SKEB=@[SKEB], + SKEB_TAU=2.16E4, + SKEB_LSCALE=1000.E3, + SHUM=@[SHUM], + SHUM_TAU=21600, + SHUM_LSCALE=500000, + SPPT=@[SPPT], + SPPT_TAU=21600, + SPPT_LSCALE=500000, + SPPT_LOGIT=.TRUE., + SPPT_SFCLIMIT=.TRUE., + ISEED_SHUM=1, + ISEED_SKEB=2, + ISEED_SPPT=3, +/ +&nam_sfcperts + NSFCPERT=6, + PERTZ0=-999., + PERTSHC=-999., + PERTZT=-999., + PERTLAI=-999., + PERTVEGF=-999., + PERTALB=-999., + SFC_TAU=21600, + SFC_LSCALE=500000, + ISEED_SFC=0, + SPPT_LAND=.FALSE., +/ diff --git a/tests/fv3_conf/ccpp_gsd_sar_25km_run.IN b/tests/fv3_conf/ccpp_gsd_sar_25km_run.IN new file mode 100644 index 0000000000..dabc2ad2c5 --- /dev/null +++ b/tests/fv3_conf/ccpp_gsd_sar_25km_run.IN @@ -0,0 +1,35 @@ + +rm -fr INPUT RESTART +mkdir INPUT RESTART +cp -r /scratch1/BMC/gmtb/ufs-weather-model/RT/NEMSfv3gfs/FV3_input_data_temporary_gsd_sar_25km/*.nc INPUT/ + +cp @[RTPWD]/FV3_input_data/INPUT/aerosol.dat . +cp @[RTPWD]/FV3_input_data/INPUT/co2historicaldata_201*.txt . +cp @[RTPWD]/FV3_input_data/INPUT/sfc_emissivity_idx.txt . +cp @[RTPWD]/FV3_input_data/INPUT/solarconstant_noaa_an.txt . +cp @[RTPWD]/FV3_input_data/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77 ./global_o3prdlos.f77 +cp @[RTPWD]/FV3_input_data/global_h2o_pltc.f77 ./global_h2oprdlos.f77 +cp @[RTPWD]/FV3_input_data/*grb . +cp @[RTPWD]/FV3_input_data/*_table . + +# Copy SAR diag and field table files +cp /scratch1/BMC/gmtb/ufs-weather-model/RT/NEMSfv3gfs/FV3_input_data_temporary_gsd_sar_25km/diag_table_gsd_sar diag_table +cp /scratch1/BMC/gmtb/ufs-weather-model/RT/NEMSfv3gfs/FV3_input_data_temporary_gsd_sar_25km/field_table_gsd_sar field_table + +cp @[RTPWD]/FV3_input_data/*configure . + +# Thompson MP lookup tables - copy standard and SIONlib tables of precomputed tables +cp @[RTPWD]/FV3_input_data_gsd/thompson_tables_precomp.sl . +cp @[RTPWD]/FV3_input_data_gsd/qr_acr_qs.dat . +cp @[RTPWD]/FV3_input_data_gsd/qr_acr_qg.dat . +cp @[RTPWD]/FV3_input_data_gsd/freezeH2O.dat . +cp @[RTPWD]/FV3_input_data_gsd/CCN_ACTIVATE.BIN . + +cp ${PATHRT}/../FV3/ccpp/suites/suite_${CCPP_SUITE}.xml suite_${CCPP_SUITE}.xml + +# Add path to libccpp.so and libccpphys.so to LD_LIBRARY_PATH, append to module-setup.sh +echo " " >> module-setup.sh +echo "# Add path to libccpp.so and libccpphys.so to LD_LIBRARY_PATH" +echo "export LD_LIBRARY_PATH=${PATHRT}/../FV3/${CCPP_LIB_DIR}:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> module-setup.sh +echo " " >> module-setup.sh + diff --git a/tests/rt_ccpp_gsd.conf b/tests/rt_ccpp_gsd.conf index 81fc51a520..af77ffae6b 100644 --- a/tests/rt_ccpp_gsd.conf +++ b/tests/rt_ccpp_gsd.conf @@ -23,11 +23,12 @@ RUN | fv3_ccpp_mynn RUN | fv3_ccpp_gsd_drag_suite | standard | | fv3 | RUN | fv3_ccpp_gsd_sar | standard | | fv3 | # Compile with CCPP - static mode, debug -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | hera.intel | fv3 | -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | cheyenne.intel | fv3 | -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | hera.intel | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | cheyenne.gnu | fv3 | # Run tests RUN | fv3_ccpp_gsd_debug | standard | | fv3 | +RUN | fv3_ccpp_gsd_sar_25km_debug | standard | | fv3 | ############################################################################################################################################################################# # CCPP DYNAMIC tests # diff --git a/tests/tests/fv3_ccpp_gsd_sar_25km_debug b/tests/tests/fv3_ccpp_gsd_sar_25km_debug new file mode 100644 index 0000000000..bf7f4c17a4 --- /dev/null +++ b/tests/tests/fv3_ccpp_gsd_sar_25km_debug @@ -0,0 +1,36 @@ +###################################################################################### +# +# FV3 CCPP GSD SAR 25km (GF CU + Thompson MP + MYNN PBL + RUC LSM) test in DEBUG mode +# +###################################################################################### + +export TEST_DESCR="Compare FV3 CCPP GSD SAR results with previous trunk version" + +export CNTL_DIR=fv3_gsd_sar_25km + +export LIST_FILES="dynf000.nc \ + dynf001.nc \ + phyf000.nc \ + phyf001.nc \ + RESTART/coupler.res \ + RESTART/fv_core.res.nc \ + RESTART/fv_core.res.tile1.nc \ + RESTART/fv_srf_wnd.res.tile1.nc \ + RESTART/fv_tracer.res.tile1.nc \ + RESTART/phy_data.nc \ + RESTART/sfc_data.nc" + +export_fv3 +export TASKS=24 +export NODES=$(expr $TASKS / $TPN + 1) + +export MODEL_CONFIGURE=ccpp_gsd_sar_25km-model_configure.IN +export FV3_RUN=ccpp_gsd_sar_25km_run.IN +export CCPP_SUITE=FV3_GSD_SAR +export CCPP_LIB_DIR=ccpp/lib +export INPUT_NML=ccpp_gsd_sar_25km.nml.IN + +RUN_SCRIPT=rt_fv3.sh + +export WLCLK=30 + From c428ab3e07ad6f994e384c396cc89931ba32c62b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2019 08:02:02 -0700 Subject: [PATCH 3/4] Update submodule pointer for FV3 following merge of https://github.com/NCAR/fv3atm/pull/22 --- FV3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FV3 b/FV3 index fa72e2b054..e14e81fd2c 160000 --- a/FV3 +++ b/FV3 @@ -1 +1 @@ -Subproject commit fa72e2b054d4d383a2c482cf5fc9a1f27f850e71 +Subproject commit e14e81fd2cab47ab993eb8f4bd9dfc07c74e5654 From 2b6903e7ee545fc5a0a5300d6190aee459d1dab6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2019 08:02:40 -0700 Subject: [PATCH 4/4] Updates for new regression test fv3_ccpp_gsd_sar_25km_debug --- tests/rt_ccpp_gsd.conf | 11 ++++++++--- tests/tests/fv3_ccpp_gsd_sar_25km_debug | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/rt_ccpp_gsd.conf b/tests/rt_ccpp_gsd.conf index af77ffae6b..b8af693784 100644 --- a/tests/rt_ccpp_gsd.conf +++ b/tests/rt_ccpp_gsd.conf @@ -23,11 +23,16 @@ RUN | fv3_ccpp_mynn RUN | fv3_ccpp_gsd_drag_suite | standard | | fv3 | RUN | fv3_ccpp_gsd_sar | standard | | fv3 | # Compile with CCPP - static mode, debug -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | hera.intel | fv3 | -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | cheyenne.intel | fv3 | -COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0,FV3_GSD_SAR | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | hera.intel | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_v0 | standard | cheyenne.gnu | fv3 | # Run tests RUN | fv3_ccpp_gsd_debug | standard | | fv3 | +# Compile with CCPP - static mode, debug, 32bit dynamics +COMPILE | 32BIT=Y CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_SAR | standard | hera.intel | fv3 | +COMPILE | 32BIT=Y CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_SAR | standard | cheyenne.intel | fv3 | +COMPILE | 32BIT=Y CCPP=Y DEBUG=Y STATIC=Y SUITES=FV3_GSD_SAR | standard | cheyenne.gnu | fv3 | +# Run tests RUN | fv3_ccpp_gsd_sar_25km_debug | standard | | fv3 | ############################################################################################################################################################################# diff --git a/tests/tests/fv3_ccpp_gsd_sar_25km_debug b/tests/tests/fv3_ccpp_gsd_sar_25km_debug index bf7f4c17a4..8edcdab4f8 100644 --- a/tests/tests/fv3_ccpp_gsd_sar_25km_debug +++ b/tests/tests/fv3_ccpp_gsd_sar_25km_debug @@ -6,7 +6,7 @@ export TEST_DESCR="Compare FV3 CCPP GSD SAR results with previous trunk version" -export CNTL_DIR=fv3_gsd_sar_25km +export CNTL_DIR=fv3_gsd_sar_25km_debug export LIST_FILES="dynf000.nc \ dynf001.nc \