diff --git a/.gitmodules b/.gitmodules index a6770b7e98..901dd4edbe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "FV3"] path = FV3 - url = https://github.com/NOAA-EMC/fv3atm - branch = develop + url = https://github.com/NCAR/fv3atm + branch = dtc/develop [submodule "NEMS"] path = NEMS url = https://github.com/NOAA-EMC/NEMS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000000..0d5230f892 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,14 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in the repo. +#* @defunkt +* @climbfuji @llpcarson @grantfirl @JulieSchramm + +# Order is important. The last matching pattern has the most precedence. +# So if a pull request only touches javascript files, only these owners +# will be requested to review. +#*.js @octocat @github/js + +# You can also use email addresses if you prefer. +#docs/* docs@example.com diff --git a/FV3 b/FV3 index def9be1fcd..a4de6bfba2 160000 --- a/FV3 +++ b/FV3 @@ -1 +1 @@ -Subproject commit def9be1fcd61c2a7a5efa0512cd485151b123e4a +Subproject commit a4de6bfba2fac015e28736b3cda1e321d6b7543f diff --git a/build.sh b/build.sh index 85e9547815..c146c00f64 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,7 @@ set -eu MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) -export COMPILER=${COMPILER:?"Please set COMPILER environment variable [gnu|intel]"} -export CMAKE_Platform=linux.${COMPILER} +export CMAKE_Platform=${CMAKE_Platform:?"Please set the CMAKE_Platform environment variable, e.g. [macosx.gnu|linux.gnu|linux.intel|hera.intel|...]"} export CMAKE_C_COMPILER=${CMAKE_C_COMPILER:-mpicc} export CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER:-mpicxx} export CMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER:-mpif90} diff --git a/cmake/configure_jet.intel.cmake b/cmake/configure_jet.intel.cmake index 846fa0c7d3..4caba51b5b 100644 --- a/cmake/configure_jet.intel.cmake +++ b/cmake/configure_jet.intel.cmake @@ -21,9 +21,11 @@ option(INLINE_POST "Enable inline post" OFF) include( cmake/${CMAKE_Fortran_COMPILER_ID}.cmake ) -message("AVX2 is ENABLED on Jet (multi-tagret executable)") +message("AVX2 is ENABLED on Jet (multi-target executable)") string (REPLACE "-xHOST" "-axSSE4.2,AVX,CORE-AVX2" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") string (REPLACE "-xHOST" "-axSSE4.2,AVX,CORE-AVX2" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +# For CCPP +option(SIMDMULTIARCH "Enable multi-target SIMD instruction sets" ON) string(REPLACE "-i_dynamic" "-shared-intel" CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS diff --git a/parm/ccpp_gsd_sar_v1.nml.IN b/parm/ccpp_gsd_sar_v1.nml.IN new file mode 100644 index 0000000000..7085b805a1 --- /dev/null +++ b/parm/ccpp_gsd_sar_v1.nml.IN @@ -0,0 +1,310 @@ +&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 + ccpp_suite = 'FV3_GSD_SAR_v1' +/ + +&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 = 2000200, + print_memory_usage = .false. +/ + +&fv_grid_nml + grid_file = 'INPUT/grid_spec.nc' +/ + + &fv_core_nml + layout = 34,24 + io_layout = 1,1 + npx = 1735 + npy = 1009 + 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 = 3 + + 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 = 6. + h2o_phys = .true. + ldiag3d = .false. + fhcyc = 0 + nst_anl = .true. + use_ufo = .true. + pre_rad = .false. + ncld = 5 + imp_physics = 8 + ttendlim = 0.005 + 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 = .F. + satmedmf = .false. + lheatstrg = .F. + do_mynnedmf = .T. + do_mynnsfclay = .false. + random_clds = .false. + trans_trac = .true. + cnvcld = .false. + imfshalcnv = -1 + imfdeepcnv = -1 + 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 = 1 + lsoil = 4 + 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 +/ + +&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., +/ + +&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/tests/fv3_conf/ccpp_gsd_run.IN b/tests/fv3_conf/ccpp_gsd_run.IN index 1091b103b0..e0a7ece753 100644 --- a/tests/fv3_conf/ccpp_gsd_run.IN +++ b/tests/fv3_conf/ccpp_gsd_run.IN @@ -19,7 +19,7 @@ cp @[RTPWD]/FV3_input_data/*grb . cp @[RTPWD]/FV3_input_data/*_table . # Copy diag table file depending on LSM -if [ $LSM = 1 ]; then +if [ $LSM = 1 ] || [ $LSM = 2 ]; then cp @[RTPWD]/FV3_input_data_gsd/diag_table_gsd_noah diag_table elif [ $LSM = 3 ]; then cp @[RTPWD]/FV3_input_data_gsd/diag_table_gsd_ruc diag_table diff --git a/tests/fv3_conf/ccpp_gsd_sar_v1_run.IN b/tests/fv3_conf/ccpp_gsd_sar_v1_run.IN new file mode 100644 index 0000000000..7eed0018b2 --- /dev/null +++ b/tests/fv3_conf/ccpp_gsd_sar_v1_run.IN @@ -0,0 +1,34 @@ +rm -fr INPUT RESTART +mkdir INPUT RESTART +cp -r /scratch1/BMC/gmtb/ufs-weather-model/RT/NEMSfv3gfs/FV3_input_data_temporary_gsd_sar/*.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 @[RTPWD]/FV3_input_data_gsd/diag_table_gsd_noah diag_table +cp /scratch1/BMC/gmtb/ufs-weather-model/RT/NEMSfv3gfs/FV3_input_data_temporary_gsd_sar/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_dtc.conf b/tests/rt_ccpp_dtc.conf new file mode 100644 index 0000000000..dfe7e3ba8e --- /dev/null +++ b/tests/rt_ccpp_dtc.conf @@ -0,0 +1,59 @@ +############################################################################################################################################################## +# CCPP REPRO tests # +############################################################################################################################################################## + +# control- and gfdlmp-based tests, 32-bit dynamics +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_sas 32BIT=Y | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_sas 32BIT=Y | standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_sas 32BIT=Y | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_sas 32BIT=Y | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_sas 32BIT=Y | standard | jet.intel | fv3 | +# Run tests with static CCPP add-on, 32-bit dynamics +RUN | fv3_ccpp_control_32bit | standard | | fv3 | +RUN | fv3_ccpp_gfdlmp_32bit | standard | | fv3 | +RUN | fv3_ccpp_sas | standard | | fv3 | +# stretched- and stretched-nest based tests, 32-bit dynamics +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | stampede.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_stretched 32BIT=Y | standard | jet.intel | fv3 | +RUN | fv3_ccpp_stretched | standard | | fv3 | +RUN | fv3_ccpp_stretched_nest | standard | gaea.intel | fv3 | +RUN | fv3_ccpp_stretched_nest | standard | hera.intel | fv3 | +RUN | fv3_ccpp_stretched_nest | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_stretched_nest | standard | jet.intel | fv3 | +RUN | fv3_ccpp_stretched_nest_quilt | standard | gaea.intel | fv3 | +RUN | fv3_ccpp_stretched_nest_quilt | standard | hera.intel | fv3 | +# Physics bakeoff tests, 32-bit dynamics +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_CPT_v0,FV3_GSD_v0 32BIT=Y | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_CPT_v0,FV3_GSD_v0 32BIT=Y | standard | hera.intel | fv3 | +# Note: any suite that uses csawmg crashes with GNU and PGI (--> there must be something wrong with it) +RUN | fv3_ccpp_cpt | standard | gaea.intel | fv3 | +RUN | fv3_ccpp_cpt | standard | hera.intel | fv3 | +RUN | fv3_ccpp_gsd | standard | gaea.intel | fv3 | +RUN | fv3_ccpp_gsd | standard | hera.intel | fv3 | +# Additional physics: MYJ +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_myj 32BIT=Y | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_myj 32BIT=Y | standard | hera.intel | fv3 | +RUN | fv3_ccpp_gfs_myj | standard | gaea.intel | fv3 | +RUN | fv3_ccpp_gfs_myj | standard | hera.intel | fv3 | +# Additional HAFS physics +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | stampede.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_HAFS_ferhires_update_moist | standard | jet.intel | fv3 | +RUN | fv3_ccpp_regional_c768_FA_update_moist | standard | | fv3 | +# Additional CAPS physics +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | gaea.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | cheyenne.gnu | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | stampede.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_2017_shinhong,FV3_GFS_2017_ysu,FV3_GFS_2017_ntiedtke | standard | jet.intel | fv3 | +RUN | fv3_ccpp_shinhong | standard | | fv3 | +RUN | fv3_ccpp_ysu | standard | | fv3 | +RUN | fv3_ccpp_ntiedtke | standard | | fv3 | diff --git a/tests/rt_ccpp_gsd.conf b/tests/rt_ccpp_gsd.conf new file mode 100644 index 0000000000..6e214e9832 --- /dev/null +++ b/tests/rt_ccpp_gsd.conf @@ -0,0 +1,44 @@ +################################################################################################################################################################################## +# CCPP REPRO tests # +################################################################################################################################################################################## + +# Compile with CCPP - static mode +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson_mynn,FV3_GFS_v15_gf_thompson,FV3_GSD_v0,FV3_GSD_noah,FV3_GSD_SAR_v1,FV3_RRFS_v0| standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson_mynn,FV3_GFS_v15_gf_thompson,FV3_GSD_v0,FV3_GSD_noah,FV3_GSD_SAR_v1,FV3_RRFS_v0| standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson_mynn,FV3_GFS_v15_gf_thompson,FV3_GSD_v0,FV3_GSD_noah,FV3_GSD_SAR_v1,FV3_RRFS_v0| standard | cheyenne.gnu | fv3 | +# Run tests +RUN | fv3_ccpp_thompson_mynn | standard | | fv3 | +RUN | fv3_ccpp_gf_thompson | standard | | fv3 | +RUN | fv3_ccpp_gsd | standard | | fv3 | +RUN | fv3_ccpp_gsd_coldstart | standard | | | +RUN | fv3_ccpp_gsd_warmstart | standard | | | fv3_ccpp_gsd_coldstart +RUN | fv3_ccpp_gsd_noah | standard | | fv3 | +RUN | fv3_ccpp_rrfs_v0 | standard | | fv3 | +RUN | fv3_ccpp_gsd_sar_v1 | standard | | fv3 | +# Compile with CCPP - static mode +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson,FV3_GFS_v15_gf,FV3_GFS_v15_mynn,FV3_GSD_v0_drag_suite,FV3_GSD_SAR | standard | hera.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson,FV3_GFS_v15_gf,FV3_GFS_v15_mynn,FV3_GSD_v0_drag_suite,FV3_GSD_SAR | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y REPRO=Y SUITES=FV3_GFS_v15_thompson,FV3_GFS_v15_gf,FV3_GFS_v15_mynn,FV3_GSD_v0_drag_suite,FV3_GSD_SAR | standard | cheyenne.gnu | fv3 | +# Run tests +RUN | fv3_ccpp_thompson | standard | | fv3 | +RUN | fv3_ccpp_gf | standard | | fv3 | +RUN | fv3_ccpp_mynn | standard | | fv3 | +RUN | fv3_ccpp_gsd_drag_suite | standard | | fv3 | +RUN | fv3_ccpp_gsd_sar | standard | | fv3 | + +################################################################################################################################################################################## +# CCPP DEBUG tests # +################################################################################################################################################################################## + +# Compile with CCPP - static mode, debug +COMPILE | CCPP=Y DEBUG=Y SUITES=FV3_GSD_v0 | standard | hera.intel | fv3 | +COMPILE | CCPP=Y DEBUG=Y SUITES=FV3_GSD_v0 | standard | cheyenne.intel | fv3 | +COMPILE | CCPP=Y DEBUG=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 SUITES=FV3_GSD_SAR | standard | hera.intel | fv3 | +COMPILE | 32BIT=Y CCPP=Y DEBUG=Y SUITES=FV3_GSD_SAR | standard | cheyenne.intel | fv3 | +COMPILE | 32BIT=Y CCPP=Y DEBUG=Y SUITES=FV3_GSD_SAR | standard | cheyenne.gnu | fv3 | +# Run tests +RUN | fv3_ccpp_gsd_sar_25km_debug | standard | | fv3 | diff --git a/tests/rt_intel.conf b/tests/rt_intel.conf new file mode 100644 index 0000000000..41ad9b7ad5 --- /dev/null +++ b/tests/rt_intel.conf @@ -0,0 +1,82 @@ +####################################################################################################################################################################################### +# CCPP PROD tests # +####################################################################################################################################################################################### + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017 | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_control | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_decomp | standard | cheyenne.intel | | +RUN | fv3_ccpp_2threads | standard | cheyenne.intel | | +RUN | fv3_ccpp_restart | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_read_inc | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_wrtGauss_netcdf_esmf | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_wrtGauss_netcdf | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_wrtGauss_nemsio | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_wrtGauss_nemsio_c192 | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_stochy | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_iau | standard | cheyenne.intel | fv3 | + +# WW3 not yet working on Cheyenne +#COMPILE | CCPP=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_gfdlmp WW3=Y | standard | cheyenne.intel | fv3 | +#RUN | fv3_ccpp_gfdlmprad | standard | cheyenne.intel | fv3 | +#RUN | fv3_ccpp_wrtGauss_nemsio_c768 | standard | cheyenne.intel | fv3 | + +# Run one test using the NEMSAppBuilder, to ensure we don't break it: +APPBUILD| CCPP | standard | cheyenne.intel | | +RUN | fv3_ccpp_appbuild | standard | cheyenne.intel | | + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_stretched 32BIT=Y | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_control_32bit | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_stretched | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_stretched_nest | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017_gfdlmp_regional,FV3_GFS_2017_gfdlmp_regional_c768 32BIT=Y | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_regional_control | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_regional_restart | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_regional_quilt | standard | cheyenne.intel | fv3 | +# fv3_regional_c768 not working on Cheyenne, code aborts with invalid values +# for surface pressure, out of range warnings and all other sorts of errors +#RUN | fv3_ccpp_regional_c768 | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_noahmp | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfdlmp | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfdlmprad_gwd | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfdlmprad_noahmp | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017_csawmgshoc,FV3_GFS_2017_csawmg,FV3_GFS_2017_satmedmf | standard | cheyenne.intel | fv3 | +#RUN | fv3_ccpp_csawmgshoc | standard | cheyenne.intel | fv3 | +#RUN | fv3_ccpp_csawmg3shoc127 | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_csawmg | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_satmedmf | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017_gfdlmp,FV3_CPT_v0,FV3_GSD_v0 32BIT=Y | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfdlmp_32bit | standard | cheyenne.intel | fv3 | +# inline post not yet working on Cheyenne +#RUN | fv3_ccpp_gfdlmprad_32bit_post | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_cpt | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gsd | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_v15p2,FV3_GFS_v16beta,FV3_GFS_2017_RRTMGP | standard | cheyenne.intel | fv3 | + +RUN | fv3_ccpp_gfs_v15p2 | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfs_v16beta | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_rrtmgp | standard | cheyenne.intel | fv3 | + +####################################################################################################################################################################################### +# CCPP DEBUG tests # +####################################################################################################################################################################################### + +COMPILE | CCPP=Y SUITES=FV3_GFS_2017,FV3_GFS_2017_stretched 32BIT=Y DEBUG=Y | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_control_debug | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_stretched_nest_debug | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GFS_v15p2,FV3_GFS_v16beta,FV3_GFS_2017_RRTMGP DEBUG=Y | standard | cheyenne.intel | fv3 | + +RUN | fv3_ccpp_gfs_v15p2_debug | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_gfs_v16beta_debug | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_rrtmgp_debug | standard | cheyenne.intel | fv3 | + +COMPILE | CCPP=Y SUITES=FV3_GSD_v0,FV3_GFS_v15_thompson 32BIT=Y DEBUG=Y | standard | cheyenne.intel | fv3 | + +RUN | fv3_ccpp_gsd_debug | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_thompson_debug | standard | cheyenne.intel | fv3 | +RUN | fv3_ccpp_thompson_no_aero_debug | standard | cheyenne.intel | fv3 | diff --git a/tests/rt_stampede_cheyenne.conf b/tests/rt_stampede_cheyenne.conf index 6738c4dcfd..f2859ff45b 100644 --- a/tests/rt_stampede_cheyenne.conf +++ b/tests/rt_stampede_cheyenne.conf @@ -1,3 +1,6 @@ +####################################################################################################################################################################################### +# CCPP PROD tests # +####################################################################################################################################################################################### COMPILE | CCPP=Y SUITES=FV3_GFS_2017 | standard | | fv3 | diff --git a/tests/tests/fv3_ccpp_gsd_sar_v1 b/tests/tests/fv3_ccpp_gsd_sar_v1 new file mode 100644 index 0000000000..f38e11df0e --- /dev/null +++ b/tests/tests/fv3_ccpp_gsd_sar_v1 @@ -0,0 +1,37 @@ +############################################################################### +# +# FV3 CCPP GSD SAR ( Thompson MP + MYNN PBL + NOAH LSM) test +# +############################################################################### + +export TEST_DESCR="Compare FV3 CCPP GSD SAR v1 results with previous trunk version" + +export CNTL_DIR=fv3_gsd_sar_v1 + +export LIST_FILES="atmos_4xdaily.nc \ + dynf000.nc \ + dynf003.nc \ + phyf000.nc \ + phyf003.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=840 +export NODES=$(expr $TASKS / $TPN + 1) + +export MODEL_CONFIGURE=ccpp_gsd_sar-model_configure.IN +export FV3_RUN=ccpp_gsd_sar_v1_run.IN +export CCPP_SUITE=FV3_GSD_SAR_v1 +export CCPP_LIB_DIR=ccpp/lib +export INPUT_NML=ccpp_gsd_sar_v1.nml.IN + +RUN_SCRIPT=rt_fv3.sh + +export WLCLK=30 + diff --git a/tests/tests/fv3_ccpp_rrfs_v0 b/tests/tests/fv3_ccpp_rrfs_v0 new file mode 100644 index 0000000000..b282981303 --- /dev/null +++ b/tests/tests/fv3_ccpp_rrfs_v0 @@ -0,0 +1,127 @@ +############################################################################### +# +# FV3 CCPP RRFS (Thompson MP + MYNN PBL + NOAHMP LSM) test +# +############################################################################### + +export TEST_DESCR="Compare FV3 CCPP RRFS_v0 results with previous trunk version" + +export CNTL_DIR=fv3_gsd_rrfs_v0 + +export LIST_FILES="atmos_4xdaily.tile1.nc \ + atmos_4xdaily.tile2.nc \ + atmos_4xdaily.tile3.nc \ + atmos_4xdaily.tile4.nc \ + atmos_4xdaily.tile5.nc \ + atmos_4xdaily.tile6.nc \ + phyf000.tile1.nc \ + phyf000.tile2.nc \ + phyf000.tile3.nc \ + phyf000.tile4.nc \ + phyf000.tile5.nc \ + phyf000.tile6.nc \ + phyf024.tile1.nc \ + phyf024.tile2.nc \ + phyf024.tile3.nc \ + phyf024.tile4.nc \ + phyf024.tile5.nc \ + phyf024.tile6.nc \ + phyf027.tile1.nc \ + phyf027.tile2.nc \ + phyf027.tile3.nc \ + phyf027.tile4.nc \ + phyf027.tile5.nc \ + phyf027.tile6.nc \ + phyf048.tile1.nc \ + phyf048.tile2.nc \ + phyf048.tile3.nc \ + phyf048.tile4.nc \ + phyf048.tile5.nc \ + phyf048.tile6.nc \ + dynf000.tile1.nc \ + dynf000.tile2.nc \ + dynf000.tile3.nc \ + dynf000.tile4.nc \ + dynf000.tile5.nc \ + dynf000.tile6.nc \ + dynf024.tile1.nc \ + dynf024.tile2.nc \ + dynf024.tile3.nc \ + dynf024.tile4.nc \ + dynf024.tile5.nc \ + dynf024.tile6.nc \ + dynf027.tile1.nc \ + dynf027.tile2.nc \ + dynf027.tile3.nc \ + dynf027.tile4.nc \ + dynf027.tile5.nc \ + dynf027.tile6.nc \ + dynf048.tile1.nc \ + dynf048.tile2.nc \ + dynf048.tile3.nc \ + dynf048.tile4.nc \ + dynf048.tile5.nc \ + dynf048.tile6.nc \ + RESTART/coupler.res \ + RESTART/fv_core.res.nc \ + RESTART/fv_core.res.tile1.nc \ + RESTART/fv_core.res.tile2.nc \ + RESTART/fv_core.res.tile3.nc \ + RESTART/fv_core.res.tile4.nc \ + RESTART/fv_core.res.tile5.nc \ + RESTART/fv_core.res.tile6.nc \ + RESTART/fv_srf_wnd.res.tile1.nc \ + RESTART/fv_srf_wnd.res.tile2.nc \ + RESTART/fv_srf_wnd.res.tile3.nc \ + RESTART/fv_srf_wnd.res.tile4.nc \ + RESTART/fv_srf_wnd.res.tile5.nc \ + RESTART/fv_srf_wnd.res.tile6.nc \ + RESTART/fv_tracer.res.tile1.nc \ + RESTART/fv_tracer.res.tile2.nc \ + RESTART/fv_tracer.res.tile3.nc \ + RESTART/fv_tracer.res.tile4.nc \ + RESTART/fv_tracer.res.tile5.nc \ + RESTART/fv_tracer.res.tile6.nc \ + RESTART/phy_data.tile1.nc \ + RESTART/phy_data.tile2.nc \ + RESTART/phy_data.tile3.nc \ + RESTART/phy_data.tile4.nc \ + RESTART/phy_data.tile5.nc \ + RESTART/phy_data.tile6.nc \ + RESTART/sfc_data.tile1.nc \ + RESTART/sfc_data.tile2.nc \ + RESTART/sfc_data.tile3.nc \ + RESTART/sfc_data.tile4.nc \ + RESTART/sfc_data.tile5.nc \ + RESTART/sfc_data.tile6.nc" + +export_fv3 +export NODES=$(expr $TASKS / $TPN + 1) + +export FHMAX=48 +export FDIAG=3 + +export DT_ATMOS="600" +export IMP_PHYSICS=8 +export DNATS=0 +export DO_SAT_ADJ=.F. +export LRADAR=.T. +export LTAEROSOL=.T. + +export FV3_RUN=ccpp_gsd_run.IN +export CCPP_SUITE=FV3_RRFS_v0 +export CCPP_LIB_DIR=ccpp/lib +export INPUT_NML=ccpp_gsd.nml.IN + +export HYBEDMF=.F. +export DO_MYNNEDMF=.T. +export IMFSHALCNV=-1 +export IMFDEEPCNV=-1 +export FHCYC=0 +export LSM=2 +export LSOIL_LSM=4 + +RUN_SCRIPT=rt_fv3.sh + +export WLCLK=30 +