diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index 1ab2ca510..5f49068d5 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -190,8 +190,8 @@ if [ "${RUN_TASK_MAKE_GRID}" = "TRUE" ] && [ "${MACHINE}" != "WCOSS_CRAY" ]; the fi # Symlink to mosaic file with a completely different name. -target="${FIXLAM}/${CRES}${DOT_OR_USCORE}mosaic.halo${NH4}.nc" # Should this point to this halo4 file or a halo3 file??? -#target="${FIXLAM}/${CRES}${DOT_OR_USCORE}mosaic.halo${NH3}.nc" # Should this point to this halo4 file or a halo3 file??? +#target="${FIXLAM}/${CRES}${DOT_OR_USCORE}mosaic.halo${NH4}.nc" # Should this point to this halo4 file or a halo3 file??? +target="${FIXLAM}/${CRES}${DOT_OR_USCORE}mosaic.halo${NH3}.nc" # Should this point to this halo4 file or a halo3 file??? symlink="grid_spec.nc" if [ -f "${target}" ]; then ln_vrfy -sf ${relative_or_null} $target $symlink @@ -469,12 +469,17 @@ ln_vrfy -sf ${relative_or_null} ${NEMS_YAML_FP} ${run_dir} if [ "${DO_ENSEMBLE}" = TRUE ]; then ln_vrfy -sf ${relative_or_null} "${FV3_NML_ENSMEM_FPS[$(( 10#${ensmem_indx}-1 ))]}" ${run_dir}/${FV3_NML_FN} else - if [ ${BKTYPE} -eq 0 ]; then + if [ ${BKTYPE} -eq 0 ]; then # cycling, using namelist for cycling forecast cp_vrfy ${FV3_NML_RESTART_FP} ${run_dir}/input.nml else + if [ -f "INPUT/cycle_surface.done" ]; then + # namelist for cold start with surface cycle + cp_vrfy ${FV3_NML_CYCSFC_FP} ${run_dir}/input.nml + else # cold start, using namelist for cold start - cp_vrfy ${FV3_NML_FP} ${run_dir}/input.nml + cp_vrfy ${FV3_NML_FP} ${run_dir}/input.nml + fi fi fi # diff --git a/scripts/exregional_run_prepstart.sh b/scripts/exregional_run_prepstart.sh index 4c518e20c..08c52b62b 100755 --- a/scripts/exregional_run_prepstart.sh +++ b/scripts/exregional_run_prepstart.sh @@ -180,6 +180,7 @@ if [ ${BKTYPE} -eq 1 ] ; then # cold start, use prepare cold strat initial file done # rename the soil mositure and temperature fields in restart file + rm -f cycle_surface.done if [ "${bkpath_find}" == "missing" ]; then print_info_msg "Warning: cannot find surface from previous cycle" else @@ -191,6 +192,7 @@ if [ ${BKTYPE} -eq 1 ] ; then # cold start, use prepare cold strat initial file ln_vrfy -sf ${restart_prefix_find}sfc_data.nc sfc_data.tile7.halo0.nc ncks --append geolonlat.nc sfc_data.tile7.halo0.nc ncrename -v tslb,stc -v smois,smc -v sh2o,slc sfc_data.tile7.halo0.nc + echo "cycle surface with ${checkfile}" > cycle_surface.done else print_info_msg "Warning: cannot find surface from previous cycle" fi diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh index 600647af8..7b7986d0e 100755 --- a/ush/generate_FV3LAM_wflow.sh +++ b/ush/generate_FV3LAM_wflow.sh @@ -684,10 +684,6 @@ if [ "${EXTRN_MDL_NAME_ICS}" = "HRRR" -o \ [ "${SDF_USES_RUC_LSM}" = "TRUE" ]; then lsoil="9" fi -if [ "${DO_SURFACE_CYCLE}" = "TRUE" ] && \ - [ "${SDF_USES_RUC_LSM}" = "TRUE" ]; then - lsoil="9" -fi # # Create a multiline variable that consists of a yaml-compliant string # specifying the values that the namelist variables that are physics- @@ -873,7 +869,45 @@ for the various ensemble members failed." fi +if [ "${DO_SURFACE_CYCLE}" = "TRUE" ]; then + nstf_name="2,0,0,0,0" + if [ "${SDF_USES_RUC_LSM}" = "TRUE" ]; then + lsoil="9" + fi +# need to generate a namelist for surface cycle + settings="\ + 'gfs_physics_nml': { + 'lsoil': ${lsoil:-null}, + 'nst_anl' : false, + 'nstf_name' : [${nstf_name[@]}], + }" +# commnet out for using current develop branch that has no radar tten code yet. +# 'gfs_physics_nml': { +# 'fh_dfi_radar': [${FH_DFI_RADAR[@]}], +# }" + + $USHDIR/set_namelist.py -q \ + -n ${FV3_NML_FP} \ + -u "$settings" \ + -o ${FV3_NML_CYCSFC_FP} || \ + print_err_msg_exit "\ + Call to python script set_namelist.py to generate an restart FV3 namelist file + failed. Parameters passed to this script are: + Full path to base namelist file: + FV3_NML_FP = \"${FV3_NML_FP}\" + Full path to output namelist file for DA: + FV3_NML_CYCSFC_FP = \"${FV3_NML_CYCSFC_FP}\" + Namelist settings specified on command line: + settings = + $settings" +fi + if [ "${DO_DACYCLE}" = "TRUE" ]; then + nstf_name="2,0,0,0,0" + if [ "${SDF_USES_RUC_LSM}" = "TRUE" ]; then + lsoil="9" + fi + # need to generate a namelist for da cycle settings="\ 'fv_core_nml': { @@ -883,6 +917,11 @@ if [ "${DO_DACYCLE}" = "TRUE" ]; then 'nggps_ic' : false, 'mountain' : true, 'warm_start' : true, + } + 'gfs_physics_nml': { + 'lsoil': ${lsoil:-null}, + 'nst_anl' : false, + 'nstf_name' : [${nstf_name[@]}], }" # commnet out for using current develop branch that has no radar tten code yet. # 'gfs_physics_nml': { diff --git a/ush/setup.sh b/ush/setup.sh index 67f28878e..462259b4b 100755 --- a/ush/setup.sh +++ b/ush/setup.sh @@ -1422,6 +1422,7 @@ DATA_TABLE_FP="${EXPTDIR}/${DATA_TABLE_FN}" FIELD_TABLE_FP="${EXPTDIR}/${FIELD_TABLE_FN}" FV3_NML_FN="${FV3_NML_BASE_SUITE_FN%.*}" FV3_NML_FP="${EXPTDIR}/${FV3_NML_FN}" +FV3_NML_CYCSFC_FP="${EXPTDIR}/${FV3_NML_FN}_cycsfc" FV3_NML_RESTART_FP="${EXPTDIR}/${FV3_NML_FN}_restart" NEMS_CONFIG_FP="${EXPTDIR}/${NEMS_CONFIG_FN}" #