Skip to content

Commit

Permalink
Create new branch, gsl_ufs_dev, from dev_02jan24_9d901db
Browse files Browse the repository at this point in the history
 Add initial GSL modifications
  - changes to workflow files
    * GSL paths, projects, entities
  - new FV3_GFS_v17_p8_ugwpv1_mynn suite definition file (SDF)
  - updated namelist parameters in ush/parsing_namelists_FV3.sh
  - create new GSL directories: ufs_model.fd_gsl and ufs_utils.fd_gsl
    * new SDFs, add instantaneous flux variables to grib2 configuration files
    * add Thompson tracers to initial conditions
  - new sync script: rsync_gsl.sh
  - new job files:  getic.sh, makeinit_link.sh
  - modify build_ufs.sh to include MYNN SDF
  • Loading branch information
jkhender committed Jan 9, 2024
1 parent 9d901db commit 1b153fc
Show file tree
Hide file tree
Showing 24 changed files with 23,569 additions and 13 deletions.
11 changes: 11 additions & 0 deletions jkhINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

checked out dev_02jan24_9d901db from Judy's fork
(same version that is running under /scratch1/BMC/gsd-fv3-dev/jhender/test/emc_gw)

02Jan24 global-workflow
UFS: 21Dec23, 991d652
UPP: 07Nov23, 78f369b

use submodules instead of checkout.sh

gfsatmos_products replaces gfspost tasks
65 changes: 65 additions & 0 deletions jobs/rocoto/getic.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#! /usr/bin/env bash

source "$HOMEgfs/ush/preamble.sh"

## this script makes links to FV3GFS netcdf files under /public
## /home/rtfim/UFS_CAMSUITE/FV3GFSrun/FV3ICS/YYYYMMDDHH/gfs
## gfs.tHHz.sfcanl.nc -> /public/data/grids/gfs/netcdf/YYDDDHH00.gfs.tHHz.sfcanl.nc
## gfs.tHHz.atmanl.nc -> /public/data/grids/gfs/netcdf/YYDDDHH00.gfs.tHHz.atmanl.nc

echo
echo "CDATE = $CDATE"
echo "CDUMP = $CDUMP"
echo "COMPONENT = $COMPONENT"
echo "ICSDIR = $ICSDIR"
echo "PUBDIR = $PUBDIR"
echo "RETRODIR = $RETRODIR"
echo "ROTDIR = $ROTDIR"
echo "PSLOT = $PSLOT"
echo

## initialize
yyyymmdd=`echo $CDATE | cut -c1-8`
hh=`echo $CDATE | cut -c9-10`
yyddd=`date +%y%j -u -d $yyyymmdd`
fv3ic_dir=${ROTDIR}/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}

## create links in FV3ICS directory
mkdir -p $fv3ic_dir
cd $fv3ic_dir
echo "making link to netcdf files under $fv3ic_dir"

pubsfc_file=${yyddd}${hh}00.${CDUMP}.t${hh}z.sfcanl.nc
sfc_file=`echo $pubsfc_file | cut -d. -f2-`
pubatm_file=${yyddd}${hh}00.${CDUMP}.t${hh}z.atmanl.nc
atm_file=`echo $pubatm_file | cut -d. -f2-`

echo "pubsfc_file: $pubsfc_file"
echo "pubatm_file: $pubatm_file"

if [[ -f $RETRODIR/${pubatm_file} ]]; then
echo "linking $RETRODIR...."
echo "pubsfc_file: $pubsfc_file"
echo "pubatm_file: $pubatm_file"
ln -fs $RETRODIR/${pubsfc_file} $sfc_file
ln -fs $RETRODIR/${pubatm_file} $atm_file
elif [[ -f $PUBDIR/${pubatm_file} ]]; then
echo "linking $PUBDIR...."
ln -fs $PUBDIR/${pubsfc_file} $sfc_file
ln -fs $PUBDIR/${pubatm_file} $atm_file
elif [[ -f $EMCDIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${atm_file} ]]; then
echo "linking $EMCDIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}..."
echo "sfc_file: $sfc_file"
echo "atm_file: $atm_file"
ln -s $EMCDIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${sfc_file}
ln -s $EMCDIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${atm_file}
elif [[ -f $RETRODIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${atm_file} ]]; then
echo "linking $RETRODIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}..."
echo "sfc_file: $sfc_file"
echo "atm_file: $atm_file"
ln -s $RETRODIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${sfc_file}
ln -s $RETRODIR/${CDUMP}.${yyyymmdd}/${hh}/${COMPONENT}/${atm_file}
else
echo "missing input files!"
exit 1
fi
39 changes: 39 additions & 0 deletions jobs/rocoto/makeinit_link.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/sh
##
## this script makes a link to $ICSDIR/YYYYMMDDHH/gfs/<CASE>/INPUT
##
## md ${ROTDIR}/${CDUMP}.${yyyymmdd}/${hh}/model_data/${COMPONENT}
## cd ${ROTDIR}/${CDUMP}.${yyyymmdd}/${hh}/model_data/${COMPONENT}
## ln -s /scratch4/BMC/rtfim/rtruns/FV3ICS/YYYYMMDDHH/gfs/C768/INPUT input
##
##

echo
echo "CDATE = $CDATE"
echo "CASE = $CASE"
echo "CDUMP = $CDUMP"
echo "COMPONENT = $COMPONENT"
echo "ICSDIR = $ICSDIR"
echo "ROTDIR = $ROTDIR"
echo

## initialize
yyyymmdd=`echo $CDATE | cut -c1-8`
hh=`echo $CDATE | cut -c9-10`
init_dir=$ICSDIR/${CDATE}/${CDUMP}/${CASE}
outdir=${ROTDIR}/${CDUMP}.${yyyymmdd}/${hh}/model_data/${COMPONENT}

## create link to FV3ICS directory
if [[ ! -d $outdir ]]; then
mkdir -p $outdir
status=$?
if [ $status -ne 0 ]; then
echo "can't make link to $outdir...."
return $status
fi
fi
cd $outdir
echo "making link to FV3ICS directory: $init_dir/INPUT"
ln -fs $init_dir/INPUT input
status=$?
exit $status
2 changes: 1 addition & 1 deletion sorc/build_ufs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ cwd=$(pwd)

# Default settings
APP="S2SWA"
CCPP_SUITES="FV3_GFS_v17_p8_ugwpv1,FV3_GFS_v17_coupled_p8_ugwpv1" # TODO: does the g-w need to build with all these CCPP_SUITES?
CCPP_SUITES="FV3_GFS_v17_p8_ugwpv1,FV3_GFS_v17_coupled_p8_ugwpv1,FV3_GFS_v17_p8_ugwpv1_mynn" # TODO: does the g-w need to build with all these CCPP_SUITES?

while getopts ":da:j:v" option; do
case "${option}" in
Expand Down
12 changes: 12 additions & 0 deletions sorc/rsync_gsl.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

##
## this script copies over GSL changes not in ufs-community/ufs-weather-model repository
##
for dir in ufs_model.fd ufs_utils.fd; do
if [[ -d ${dir}_gsl ]]; then
echo "syncing ${dir}_gsl...."
rsync -avx ${dir}_gsl/ ${dir}/
fi
done

Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="FV3_GFS_v17_p8_c3_mynn" version="1">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>sgscloud_radpre</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>GFS_radiation_surface</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw_pre</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>sgscloud_radpost</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>sfc_diff</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>noahmpdrv</scheme>
<scheme>sfc_sice</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<!--scheme>GFS_PBL_generic_pre</scheme-->
<!--scheme>satmedmfvdifq</scheme-->
<!--scheme>GFS_PBL_generic_post</scheme-->
<scheme>mynnedmf_wrapper</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>unified_ugwp</scheme>
<scheme>unified_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>h2ophys</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>cu_c3_driver_pre</scheme>
<scheme>cu_c3_driver</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<!--scheme>GFS_SCNV_generic_pre</scheme-->
<!--scheme>samfshalcnv</scheme-->
<!--scheme>GFS_SCNV_generic_post</scheme-->
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>mp_thompson_pre</scheme>
</subcycle>
<subcycle loop="1">
<scheme>mp_thompson</scheme>
</subcycle>
<subcycle loop="1">
<scheme>mp_thompson_post</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_c3_driver_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
<group name="stochastics">
<subcycle loop="1">
<scheme>GFS_stochastics</scheme>
<scheme>GFS_physics_post</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="FV3_GFS_v17_p8_thompson" version="1">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>GFS_radiation_surface</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw_pre</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>sfc_diff</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>noahmpdrv</scheme>
<scheme>sfc_sice</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<scheme>GFS_PBL_generic_pre</scheme>
<scheme>satmedmfvdifq</scheme>
<scheme>GFS_PBL_generic_post</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>unified_ugwp</scheme>
<scheme>unified_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>h2ophys</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>samfdeepcnv</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>samfshalcnv</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>mp_thompson_pre</scheme>
</subcycle>
<subcycle loop="1">
<scheme>mp_thompson</scheme>
</subcycle>
<subcycle loop="1">
<scheme>mp_thompson_post</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
<group name="stochastics">
<subcycle loop="1">
<scheme>GFS_stochastics</scheme>
<scheme>GFS_physics_post</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
Loading

0 comments on commit 1b153fc

Please sign in to comment.