diff --git a/NOAHMP-interface/noahmp b/NOAHMP-interface/noahmp index 97e5dc7b48..d765daf147 160000 --- a/NOAHMP-interface/noahmp +++ b/NOAHMP-interface/noahmp @@ -1 +1 @@ -Subproject commit 97e5dc7b48cc4b2f808229de66e2e12bce871c03 +Subproject commit d765daf14706f3dbd8b27f0275c9b0b92c8e7271 diff --git a/tests/fv3_conf/noahmp_run.IN b/tests/fv3_conf/noahmp_run.IN index 6f4f8bd0da..6b0dd08a72 100644 --- a/tests/fv3_conf/noahmp_run.IN +++ b/tests/fv3_conf/noahmp_run.IN @@ -2,17 +2,14 @@ mkdir -p INPUT RESTART if [ "$LNDRES" = "C96" ]; then inputdir=FV3_input_data -elif [ "$LNDRES" = "C48" ]; then - inputdir=FV3_input_data48 -elif [ "$LNDRES" = "C192" ]; then - inputdir=FV3_input_data192 -elif [ "$LNDRES" = "C384" ]; then - inputdir=FV3_input_data384 -elif [ "$LNDRES" = "C768" ]; then - inputdir=FV3_input_data768 +else + inputdir=FV3_input_data${LNDRES#C} fi echo "inputdir=$inputdir,LNDRES=$LNDRES" +export OCNRES=100 +V2_SFC_FILE=${V2_SFC_FILE:-false} + if [ $DATM_CDEPS == true ]; then targetdir="./INPUT" rsync -arv @[INPUTDATA_ROOT]/NOAHMP_IC/$atm_datamode/ufs-land_@[LNDRES]_init_fields.tile1.nc ./${targetdir}/@[LNDRES].initial.tile1.nc @@ -33,7 +30,19 @@ else fi if [ $WARM_START = .false. ]; then - cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127/sfc_data.tile*.nc ${targetdir}/. + if [ $S2S = true ]; then + if [ "$V2_SFC_FILE" = "true" ]; then + cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_v2_sfc/sfc_data.tile*.nc ${targetdir}/. + else + cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127/sfc_data.tile*.nc ${targetdir}/. + fi + else + if [ "$V2_SFC_FILE" = "true" ]; then + cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}_v2_sfc/sfc_data.tile*.nc ${targetdir}/. + else + cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}/sfc_data.tile*.nc ${targetdir}/. + fi + fi else # land restart file cp ../${DEP_RUN}${SUFFIX}/ufs.cpld.lnd.out.${RESTART_FILE_SUFFIX_SECS}.tile*.nc RESTART/. diff --git a/tests/parm/ufs.configure.s2swal_fast_esmf.IN b/tests/parm/ufs.configure.s2swal_fast_esmf.IN new file mode 100644 index 0000000000..fbec273cac --- /dev/null +++ b/tests/parm/ufs.configure.s2swal_fast_esmf.IN @@ -0,0 +1,196 @@ +############################################# +#### UFS Run-Time Configuration File ###### +############################################# + +# ESMF # +logKindFlag: ESMF_LOGKIND_MULTI +globalResourceControl: true + +# EARTH # +EARTH_component_list: MED ATM CHM OCN ICE WAV LND +EARTH_attributes:: + Verbosity = 0 +:: + +# MED # +MED_model: @[med_model] +MED_petlist_bounds: @[med_petlist_bounds] +MED_omp_num_threads: @[med_omp_num_threads] + +# ATM # +ATM_model: @[atm_model] +ATM_petlist_bounds: @[atm_petlist_bounds] +ATM_omp_num_threads: @[atm_omp_num_threads] +ATM_attributes:: + Verbosity = 0 + DumpFields = false + ProfileMemory = false + OverwriteSlice = true +:: + +# CHM # +CHM_model: @[chm_model] +CHM_petlist_bounds: @[chm_petlist_bounds] +CHM_omp_num_threads: @[chm_omp_num_threads] +CHM_attributes:: + Verbosity = 0 +:: + +# OCN # +OCN_model: @[ocn_model] +OCN_petlist_bounds: @[ocn_petlist_bounds] +OCN_omp_num_threads: @[ocn_omp_num_threads] +OCN_attributes:: + Verbosity = 0 + DumpFields = false + ProfileMemory = false + OverwriteSlice = true + mesh_ocn = @[MESH_OCN] + use_coldstart = @[use_coldstart] + use_mommesh = @[use_mommesh] +:: + +# ICE # +ICE_model: @[ice_model] +ICE_petlist_bounds: @[ice_petlist_bounds] +ICE_omp_num_threads: @[ice_omp_num_threads] +ICE_attributes:: + Verbosity = 0 + DumpFields = false + ProfileMemory = false + OverwriteSlice = true + mesh_ice = @[MESH_ICE] + eps_imesh = @[eps_imesh] + stop_n = @[RESTART_N] + stop_option = nhours + stop_ymd = -999 +:: + +# WAV # +WAV_model: @[wav_model] +WAV_petlist_bounds: @[wav_petlist_bounds] +WAV_omp_num_threads: @[wav_omp_num_threads] +WAV_attributes:: + Verbosity = 0 + OverwriteSlice = false + mesh_wav = @[MESH_WAV] + user_sets_restname = @[WW3_user_sets_restname] +:: + +# LND # +LND_model: @[lnd_model] +LND_petlist_bounds: @[lnd_petlist_bounds] +LND_omp_num_threads: @[lnd_omp_num_threads] +LND_attributes:: + Verbosity = 1 + Diagnostic = 0 + mosaic_file = @[mosaic_file] + input_dir = @[lnd_input_dir] + fixed_dir = @[lnd_fixed_dir] + ic_type = @[lnd_ic_type] + layout = @[layout_x]:@[layout_y] # need to be consistent with number of PEs + num_soil_levels = 4 + forcing_height = 10 + soil_level_thickness = 0.10:0.30:0.60:1.00 + soil_level_nodes = 0.05:0.25:0.70:1.50 + dynamic_vegetation_option = 4 + canopy_stomatal_resistance_option = 2 + soil_wetness_option = 1 + runoff_option = 1 + surface_exchange_option = 3 + supercooled_soilwater_option = 1 + frozen_soil_adjust_option = 1 + radiative_transfer_option = 3 + snow_albedo_option = @[snow_albedo_option] + precip_partition_option = @[precip_partition_option] + soil_temp_lower_bdy_option = 2 + soil_temp_time_scheme_option = 3 + surface_evap_resistance_option = 1 # not used, it is fixed to 4 in sfc_noahmp_drv.F90 + glacier_option = 1 + surface_thermal_roughness_option = 2 + output_freq = 3600 + restart_freq = -1 + calc_snet = @[CALC_SNET] + initial_albedo = @[initial_albedo] +:: + +# CMEPS warm run sequence +runSeq:: +@@[coupling_interval_slow_sec] + MED med_phases_prep_ocn_avg + MED -> OCN :remapMethod=redist + OCN + @@[coupling_interval_fast_sec] + MED med_phases_prep_atm + MED med_phases_prep_ice + MED med_phases_prep_lnd + MED med_phases_prep_wav_accum + MED med_phases_prep_wav_avg + MED -> ATM :remapMethod=redist + MED -> ICE :remapMethod=redist + MED -> LND :remapMethod=redist + MED -> WAV :remapMethod=redist + ATM phase1 + ATM -> CHM + CHM + CHM -> ATM + ATM phase2 + ICE + WAV + LND + ATM -> MED :remapMethod=redist + MED med_phases_post_atm + ICE -> MED :remapMethod=redist + MED med_phases_post_ice + LND -> MED :remapMethod=redist + MED med_phases_post_lnd + WAV -> MED :remapMethod=redist + MED med_phases_post_wav + MED med_phases_ocnalb_run + MED med_phases_prep_ocn_accum + @ + OCN -> MED :remapMethod=redist + MED med_phases_post_ocn + MED med_phases_restart_write +@ +:: + +# CMEPS variables + +DRIVER_attributes:: +:: + +MED_attributes:: + ATM_model = @[atm_model] + ICE_model = @[ice_model] + LND_model = @[lnd_model] + OCN_model = @[ocn_model] + WAV_model = @[wav_model] + coupling_mode = @[CPLMODE] + pio_rearranger = @[pio_rearranger] + ocean_albedo_limit = @[ocean_albedo_limit] +:: + +ALLCOMP_attributes:: + ScalarFieldCount = 3 + ScalarFieldIdxGridNX = 1 + ScalarFieldIdxGridNY = 2 + ScalarFieldIdxGridNTile = 3 + ScalarFieldName = cpl_scalars + start_type = @[RUNTYPE] + restart_dir = @[CMEPS_RESTART_DIR] + case_name = ufs.cpld + restart_n = @[RESTART_N] + restart_option = nhours + restart_ymd = -999 + dbug_flag = @[cap_dbug_flag] + stop_n = @[FHMAX] + stop_option = nhours + stop_ymd = -999 + orb_eccen = 1.e36 + orb_iyear = 2000 + orb_iyear_align = 2000 + orb_mode = fixed_year + orb_mvelp = 1.e36 + orb_obliq = 1.e36 +:: diff --git a/tests/rt.conf b/tests/rt.conf index 2fa9bfd999..5df44a910f 100644 --- a/tests/rt.conf +++ b/tests/rt.conf @@ -49,6 +49,9 @@ RUN | cpld_restart_c192_p8 | - wcoss2 jet acorn s4 RUN | cpld_bmark_p8 | - s4 jet acorn noaacloud | baseline | RUN | cpld_restart_bmark_p8 | - s4 jet acorn noaacloud | | cpld_bmark_p8 +COMPILE | s2swal | intel | -DAPP=S2SWAL -DCCPP_SUITES=FV3_GFS_v17_coupled_p8 | | fv3 | +RUN | cpld_control_p8_lnd | - noaacloud | baseline | + # Aerosol, no Wave RUN | cpld_s2sa_p8 | - noaacloud | baseline | diff --git a/tests/tests/cpld_control_p8_lnd b/tests/tests/cpld_control_p8_lnd new file mode 100644 index 0000000000..55be047c23 --- /dev/null +++ b/tests/tests/cpld_control_p8_lnd @@ -0,0 +1,96 @@ +# +# cpld_control P8 test with land component model +# + +source tests/cpld_control_p8 + +export TEST_DESCR="Fully coupled FV3-CCPP-GOCART-MOM6-CICE-CMEPS-WW3-NOAHMP system - C96MX100" + +export CNTL_DIR=cpld_control_p8_lnd + +export LIST_FILES="sfcf021.tile1.nc \ + sfcf021.tile2.nc \ + sfcf021.tile3.nc \ + sfcf021.tile4.nc \ + sfcf021.tile5.nc \ + sfcf021.tile6.nc \ + atmf021.tile1.nc \ + atmf021.tile2.nc \ + atmf021.tile3.nc \ + atmf021.tile4.nc \ + atmf021.tile5.nc \ + atmf021.tile6.nc \ + sfcf024.tile1.nc \ + sfcf024.tile2.nc \ + sfcf024.tile3.nc \ + sfcf024.tile4.nc \ + sfcf024.tile5.nc \ + sfcf024.tile6.nc \ + atmf024.tile1.nc \ + atmf024.tile2.nc \ + atmf024.tile3.nc \ + atmf024.tile4.nc \ + atmf024.tile5.nc \ + atmf024.tile6.nc \ + gocart.inst_aod.20210323_0600z.nc4 \ + 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 \ + RESTART/20210323.060000.MOM.res.nc \ + RESTART/iced.2021-03-23-21600.nc \ + RESTART/ufs.cpld.cpl.r.2021-03-23-21600.nc \ + 20210323.060000.out_pnt.ww3 \ + 20210323.060000.out_grd.ww3 \ + ufs.cpld.lnd.out.2021-03-23-21600.tile1.nc \ + ufs.cpld.lnd.out.2021-03-23-21600.tile2.nc \ + ufs.cpld.lnd.out.2021-03-23-21600.tile3.nc \ + ufs.cpld.lnd.out.2021-03-23-21600.tile4.nc \ + ufs.cpld.lnd.out.2021-03-23-21600.tile5.nc \ + ufs.cpld.lnd.out.2021-03-23-21600.tile6.nc" + +export CPLLND=.true. +export CPLLND2ATM=.true. +export UFS_CONFIGURE=ufs.configure.s2swal_fast_esmf.IN +export lnd_model=noahmp +export LND_tasks=144 +export lnd_ic_type=sfc +export CALC_SNET=.false. +export layout_x=3 +export layout_y=8 +export LNDRES=C96 +export coupling_interval_sec=720 +export snow_albedo_option=1 +export precip_partition_option=4 +export initial_albedo=0.2 +export lnd_input_dir="INPUT/" +export lnd_fixed_dir="./" +export mosaic_file="INPUT/${LNDRES}_mosaic.nc"