From 57589b478a16063b48d6595c7239d4ec2babda47 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 9 Oct 2024 18:41:01 +0000 Subject: [PATCH] add test for land IAU --- tests/parm/global_control_lnd_iau.nml.IN | 418 +++++++++++++++++++++++ tests/rt.conf | 1 + tests/tests/control_c48_lnd_iau | 84 +++++ 3 files changed, 503 insertions(+) create mode 100644 tests/parm/global_control_lnd_iau.nml.IN create mode 100644 tests/tests/control_c48_lnd_iau diff --git a/tests/parm/global_control_lnd_iau.nml.IN b/tests/parm/global_control_lnd_iau.nml.IN new file mode 100644 index 0000000000..4a3ce0e2d7 --- /dev/null +++ b/tests/parm/global_control_lnd_iau.nml.IN @@ -0,0 +1,418 @@ +&atmos_model_nml + blocksize = 32 + chksum_debug = .false. + dycore_only = .false. + ccpp_suite = '@[CCPP_SUITE]' +/ + +&diag_manager_nml + prepend_date = .false. + max_output_fields = @[MAX_OUTPUT_FIELDS] +/ + +&fms_nml + clock_grain = 'ROUTINE' + domains_stack_size = @[DOMAINS_STACK_SIZE] + print_memory_usage = .false. +/ + +&fms2_io_nml + netcdf_default_format = 'netcdf4' +/ + +&fv_core_nml + layout = @[INPES],@[JNPES] + io_layout = 1,1 + npx = @[NPX] + npy = @[NPY] + ntiles = 6 + npz = @[NPZ] + dz_min = @[DZ_MIN] + psm_bc = @[PSM_BC] + grid_type = -1 + make_nh = @[MAKE_NH] + fv_debug = .false. + range_warn = .true. + reset_eta = .false. + n_sponge = 42 + nudge_qv = .true. + nudge_dz = .false. + tau = @[TAU] + fast_tau_w_sec = 0.2 + rf_cutoff = @[RF_CUTOFF] + d2_bg_k1 = @[D2_BG_K1] + d2_bg_k2 = @[D2_BG_K2] + kord_tm = @[KORD_TM] + kord_mt = @[KORD_XX] + kord_wz = @[KORD_XX] + kord_tr = @[KORD_XX] + hydrostatic = @[HYDROSTATIC] + phys_hydrostatic = .false. + use_hydro_pressure = .false. + pass_full_omega_to_physics_in_non_hydrostatic_mode = @[UPDATE_FULL_OMEGA] + beta = 0. + a_imp = 1. + p_fac = 0.1 + k_split = @[K_SPLIT] + n_split = @[N_SPLIT] + nwat = 6 + na_init = @[NA_INIT] + d_ext = 0. + dnats = @[DNATS] + fv_sg_adj = @[FV_SG_ADJ] + d2_bg = 0. + nord = 2 + dddmp = @[DDDMP] + d4_bg = 0.12 + vtdm4 = 0.02 + delt_max = 0.002 + ke_bg = 0. + do_vort_damp = @[DO_VORT_DAMP] + external_ic = @[EXTERNAL_IC] + external_eta = .true. + gfs_phil = .false. + nggps_ic = @[NGGPS_IC] + mountain = @[MOUNTAIN] + ncep_ic = .false. + d_con = @[D_CON] + hord_mt = @[HORD_XX] + hord_vt = @[HORD_XX] + hord_tm = @[HORD_XX] + hord_dp = @[HORD_DP] + hord_tr = @[HORD_TR] + adjust_dry_mass = .false. + dry_mass = 98320.0 + consv_te = 1. + do_sat_adj = @[DO_SAT_ADJ] + consv_am = .false. + fill = .true. + dwind_2d = .false. + print_freq = 6 + warm_start = @[WARM_START] + no_dycore = .false. + z_tracer = .true. + agrid_vel_rst = .true. + read_increment = @[READ_INCREMENT] + res_latlon_dynamics = @[RES_LATLON_DYNAMICS] + increment_file_on_native_grid = @[INCREMENT_FILE_ON_NATIVE_GRID] +/ + +&external_ic_nml + filtered_terrain = .true. + levp = @[NPZP] + gfs_dwinds = .true. + checker_tr = .false. + nt_checker = 0 +/ + +&gfs_physics_nml + fhzero = @[FHZERO] + h2o_phys = .true. + ldiag3d = @[LDIAG3D] + qdiag3d = @[QDIAG3D] + print_diff_pgr = @[PRINT_DIFF_PGR] + fhcyc = @[FHCYC] + use_ufo = .true. + pre_rad = .false. + imp_physics = @[IMP_PHYSICS] + iovr = @[IOVR] + ltaerosol = .false. + lradar = .false. + ttendlim = -999 + dt_inner = @[DT_INNER] + sedi_semi = @[SEDI_SEMI] + decfl = @[DECFL] + oz_phys = .false. + oz_phys_2015 = .true. + lsoil_lsm = 4 + do_mynnedmf = @[DO_MYNNEDMF] + do_mynnsfclay = .false. + icloud_bl = 1 + bl_mynn_edmf = 1 + bl_mynn_tkeadvect = .true. + bl_mynn_edmf_mom = 1 + do_ugwp = .false. + do_tofd = .false. + gwd_opt = @[GWD_OPT] + do_ugwp_v0 = @[DO_UGWP_V0] + do_ugwp_v1 = @[DO_UGWP_V1] + do_ugwp_v0_orog_only = .false. + do_ugwp_v0_nst_only = @[DO_UGWP_V0_NST_ONLY] + do_gsl_drag_ls_bl = @[DO_GSL_DRAG_LS_BL] + do_gsl_drag_ss = @[DO_GSL_DRAG_SS] + do_gwd_opt_psl = @[DO_GWD_OPT_PSL] + psl_gwd_dx_factor = @[PSL_GWD_DX_FACTOR] + do_gsl_drag_tofd = @[DO_GSL_DRAG_TOFD] + do_ugwp_v1_orog_only = @[DO_UGWP_V1_OROG_ONLY] + min_lakeice = @[MIN_LAKEICE] + min_seaice = @[MIN_SEAICE] + use_cice_alb = @[USE_CICE_ALB] + pdfcld = .false. + fhswr = 3600. + fhlwr = 3600. + ialb = @[IALB] + iems = @[IEMS] + iaer = @[IAER] + icliq_sw = @[ICLIQ_SW] + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .true. + shal_cnv = @[SHAL_CNV] + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .false. + satmedmf = @[SATMEDMF] + isatmedmf = 1 + lheatstrg = @[LHEATSTRG] + lseaspray = @[LSEASPRAY] + random_clds = @[RANDOM_CLDS] + trans_trac = .true. + cnvcld = @[CNVCLD] + imfshalcnv = @[IMFSHALCNV] + imfdeepcnv = @[IMFDEEPCNV] + progsigma = @[PROGSIGMA] + betascu = @[BETASCU] + betamcu = @[BETAMCU] + betadcu = @[BETADCU] + ras = @[RAS] + cdmbgwd = @[CDMBWD] + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + lsoil = 4 + lsm = @[LSM] + iopt_dveg = @[IOPT_DVEG] + iopt_crs = @[IOPT_CRS] + iopt_btr = 1 + iopt_run = 1 + iopt_sfc = @[IOPT_SFC] + iopt_trs = @[IOPT_TRS] + iopt_diag = @[IOPT_DIAG] + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = @[IOPT_RAD] + iopt_alb = @[IOPT_ALB] + iopt_snf = 4 + iopt_tbot = 2 + iopt_stc = @[IOPT_STC] + debug = .false. + nstf_name = @[NSTF_NAME] + nst_anl = .true. + psautco = 0.0008,0.0005 + prautco = 0.00015,0.00015 + lgfdlmprad = @[LGFDLMPRAD] + effr_in = .true. + ldiag_ugwp = @[LDIAG_UGWP] + fscav_aero = @[FSCAV_AERO] + do_RRTMGP = @[DO_RRTMGP] + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + lw_file_gas = 'rrtmgp-data-lw-g128-210809.nc' + lw_file_clouds = 'rrtmgp-cloud-optics-coeffs-lw.nc' + sw_file_gas = 'rrtmgp-data-sw-g112-210809.nc' + sw_file_clouds = 'rrtmgp-cloud-optics-coeffs-sw.nc' + rrtmgp_nGptsSW = 112 + rrtmgp_nGptsLW = 128 + rrtmgp_nBandsLW = 16 + rrtmgp_nBandsSW = 14 + doGP_cldoptics_LUT = @[DOGP_CLDOPTICS_LUT] + doGP_lwscat = @[DOGP_LWSCAT] + doGP_sgs_cnv = @[DOGP_SGS_CNV] + do_sppt = @[DO_SPPT] + do_shum = @[DO_SHUM] + do_skeb = @[DO_SKEB] + iaufhrs = @[IAUFHRS] + iau_delthrs = @[IAU_DELTHRS] + iau_inc_files= @[IAU_INC_FILES] + iau_drymassfixer = .false. + use_med_flux = @[USE_MED_FLUX] + frac_grid = @[FRAC_GRID] + cplchm = @[CPLCHM] + cplflx = @[CPLFLX] + cplice = @[CPLICE] + cplwav = @[CPLWAV] + cplwav2atm = @[CPLWAV2ATM] + cpllnd = @[CPLLND] + cpllnd2atm = @[CPLLND2ATM] + do_ca = @[DO_CA] + ca_global = @[CA_GLOBAL] + ca_sgs = @[CA_SGS] + nca = @[NCA] + ncells = @[NCELLS] + nlives = @[NLIVES] + nseed = @[NSEED] + nfracseed = @[NFRACSEED] + nthresh = @[NTHRESH] + ca_trigger = @[CA_TRIGGER] + nspinup = @[NSPINUP] + iseed_ca = @[ISEED_CA] + lndp_type = @[LNDP_TYPE] + n_var_lndp = @[N_VAR_LNDP] +/ + +&land_iau_nml + do_land_iau=.true. + land_iau_fhrs=3,6,9 + land_iau_delthrs=6 + land_iau_inc_files='sfc_inc','' + lsoil_incr=3 + land_iau_filter_increments=.false. + land_iau_upd_stc=.true. + land_iau_upd_slc=.true. + land_iau_do_stcsmc_adjustment=.true. + land_iau_min_T_increment=0.0001 +/ + +&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 = @[KNOB_UGWP_DOKDIS] + knob_ugwp_ndx4lh = @[KNOB_UGWP_NDX4LH] + knob_ugwp_version = @[KNOB_UGWP_VERSION] + ! This is only for UGWP v0 +@[HIDE_UGWPV0] launch_level = 54 + ! These are only for UGWP v1 +@[HIDE_UGWPV1] knob_ugwp_palaunch = 275.0e2 +@[HIDE_UGWPV1] knob_ugwp_nslope = @[KNOB_UGWP_NSLOPE] +@[HIDE_UGWPV1] knob_ugwp_lzmax = 15.750e3 +@[HIDE_UGWPV1] knob_ugwp_lzmin = 0.75e3 +@[HIDE_UGWPV1] knob_ugwp_lzstar = 2.0e3 +@[HIDE_UGWPV1] knob_ugwp_taumin = 0.25e-3 +@[HIDE_UGWPV1] knob_ugwp_tauamp = @[KNOB_UGWP_TAUAMP] +@[HIDE_UGWPV1] knob_ugwp_lhmet = 200.0e3 +@[HIDE_UGWPV1] knob_ugwp_orosolv = 'pss-1986' +/ + +&gfdl_cloud_microphysics_nml + sedi_transport = .true. + do_sedi_heat = .false. + rad_snow = .true. + rad_graupel = .true. + rad_rain = .true. + const_vi = .false. + const_vs = .false. + const_vg = .false. + const_vr = .false. + 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 = 225. + tau_v2l = 150. + 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 = 150. + reiflag = 2 +/ + +&interpolator_nml + interp_method = 'conserve_great_circle' +/ + +&namsfc + FNGLAC = @[FNGLAC] + FNMXIC = @[FNMXIC] + FNTSFC = @[FNTSFC] + FNSNOC = @[FNSNOC] + FNZORC = @[FNZORC] + FNALBC = @[FNALBC] + FNALBC2 = @[FNALBC2] + FNAISC = @[FNAISC] + FNTG3C = @[FNTG3C] + FNVEGC = @[FNVEGC] + FNVETC = @[FNVETC] + FNSOTC = @[FNSOTC] + FNSOCC = @[FNSOCC] + FNSMCC = @[FNSMCC] + FNMSKH = @[FNMSKH] + FNTSFA = '' + FNACNA = '' + FNSNOA = '' + FNVMNC = @[FNVMNC] + FNVMXC = @[FNVMXC] + FNSLPC = @[FNSLPC] + FNABSC = @[FNABSC] + LDEBUG = .false. + FSMCL(2) = 99999 + FSMCL(3) = 99999 + FSMCL(4) = 99999 + LANDICE = @[LANDICE] + FTSFS = @[FTSFS] + FAISL = 99999 + FAISS = 99999 + FSNOL = 99999 + FSNOS = 99999 + FSICL = @[FSICL] + FSICS = @[FSICS] + FTSFL = 99999 + FVETL = 99999 + FSOTL = 99999 + FvmnL = 99999 + FvmxL = 99999 + FSLPL = 99999 + FABSL = 99999 +/ + +&fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + +&nam_stochy +/ + +&nam_sfcperts + lndp_type = @[LNDP_TYPE] + lndp_model_type = @[LNDP_MODEL_TYPE] + LNDP_TAU=@[LNDP_TAU] + LNDP_LSCALE=@[LNDP_LSCALE] + ISEED_LNDP=@[ISEED_LNDP] + lndp_var_list = @[LNDP_VAR_LIST] + lndp_prt_list = @[LNDP_PRT_LIST] +/ + +&MOM_input_nml + output_directory = '@[MOM6_OUTPUT_DIR]', + input_filename = '@[MOM6_RESTART_SETTING]' + restart_input_dir = 'INPUT/', + restart_output_dir = '@[MOM6_RESTART_DIR]' + parameter_filename = 'INPUT/MOM_input', + 'INPUT/MOM_override'/ diff --git a/tests/rt.conf b/tests/rt.conf index 407dcde958..305148765d 100644 --- a/tests/rt.conf +++ b/tests/rt.conf @@ -96,6 +96,7 @@ RUN | control_latlon | RUN | control_wrtGauss_netcdf_parallel | | baseline | RUN | control_c48 | | baseline | RUN | control_c48.v2.sfc | | baseline | +RUN | control_c48_lnd_iau | | baseline | RUN | control_c192 | - noaacloud | baseline | RUN | control_c384 | | baseline | RUN | control_c384gdas | - noaacloud | baseline | diff --git a/tests/tests/control_c48_lnd_iau b/tests/tests/control_c48_lnd_iau new file mode 100644 index 0000000000..702c908d93 --- /dev/null +++ b/tests/tests/control_c48_lnd_iau @@ -0,0 +1,84 @@ +############################################################################### +# +# global control test: GFSv16 atmosphere only at C48L127 with land IAU +# +############################################################################### + +export TEST_DESCR="Compare global control C48L127 with land IAU results with previous trunk version" + +export CNTL_DIR=control_c48_lnd_iau + +export LIST_FILES="sfcf000.nc \ + sfcf024.nc \ + atmf000.nc \ + atmf024.nc \ + RESTART/20210323.060000.coupler.res \ + RESTART/20210323.060000.fv_core.res.nc \ + RESTART/20210323.060000.fv_core.res.tile1.nc \ + RESTART/20210323.060000.fv_core.res.tile2.nc \ + RESTART/20210323.060000.fv_core.res.tile3.nc \ + RESTART/20210323.060000.fv_core.res.tile4.nc \ + RESTART/20210323.060000.fv_core.res.tile5.nc \ + RESTART/20210323.060000.fv_core.res.tile6.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile1.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile2.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile3.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile4.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile5.nc \ + RESTART/20210323.060000.fv_srf_wnd.res.tile6.nc \ + RESTART/20210323.060000.fv_tracer.res.tile1.nc \ + RESTART/20210323.060000.fv_tracer.res.tile2.nc \ + RESTART/20210323.060000.fv_tracer.res.tile3.nc \ + RESTART/20210323.060000.fv_tracer.res.tile4.nc \ + RESTART/20210323.060000.fv_tracer.res.tile5.nc \ + RESTART/20210323.060000.fv_tracer.res.tile6.nc \ + RESTART/20210323.060000.phy_data.tile1.nc \ + RESTART/20210323.060000.phy_data.tile2.nc \ + RESTART/20210323.060000.phy_data.tile3.nc \ + RESTART/20210323.060000.phy_data.tile4.nc \ + RESTART/20210323.060000.phy_data.tile5.nc \ + RESTART/20210323.060000.phy_data.tile6.nc \ + RESTART/20210323.060000.sfc_data.tile1.nc \ + RESTART/20210323.060000.sfc_data.tile2.nc \ + RESTART/20210323.060000.sfc_data.tile3.nc \ + RESTART/20210323.060000.sfc_data.tile4.nc \ + RESTART/20210323.060000.sfc_data.tile5.nc \ + RESTART/20210323.060000.sfc_data.tile6.nc" + +export ATMRES=C48 + +export_fv3 +export_tiled +if [[ $RT_COMPILER != gnu ]]; then + export_ugwpv1 + export CCPP_SUITE=FV3_GFS_v17_p8_ugwpv1 +fi + +export INPES=1 +export JNPES=1 +export WRTTASK_PER_GROUP=2 +export NPZ=127 +export NPZP=128 +export NPX=49 +export NPY=49 +export SYEAR=2021 +export SMONTH=03 +export SDAY=22 +export SHOUR=06 +export RESTART_INTERVAL=0 +export OUTPUT_GRID='gaussian_grid' +export NSTF_NAME='2,0,0,0,0' +export WRITE_DOPOST=.false. +export OUTPUT_FH="6 -1" +export IAER=5111 +export IOVR=3 +export IMO=192 +export JMO=94 + +export FNSMCC_control="'global_soilmgldas.statsgo.t92.192.94.grb'" +export FNMSKH_control="'global_slmask.t62.192.94.grb'" +export FNSMCC=${FNSMCC_control} +export FNMSKH=${FNMSKH_control} + +export FV3_RUN=control_run.IN +export INPUT_NML=global_control_lnd_iau.nml.IN