diff --git a/dev/ci/cases/pr/C96C48_ufs_hybatmDA.yaml b/dev/ci/cases/pr/C96C48_ufs_hybatmDA.yaml index eaafc4b3853..459edd25ed0 100644 --- a/dev/ci/cases/pr/C96C48_ufs_hybatmDA.yaml +++ b/dev/ci/cases/pr/C96C48_ufs_hybatmDA.yaml @@ -15,12 +15,16 @@ experiment: start: warm yaml: {{ HOMEgfs }}/dev/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml +# TODO: Reenable these when the GDASApp is updated to handle the new EE2-compliant changes skip_ci_on_hosts: - gaeac5 - gaeac6 - orion - hercules - awsepicglobalworkflow + - hera + - ursa + - wcoss2 workflow: engine: rocoto diff --git a/dev/ci/cases/pr/C96_atm3DVar.yaml b/dev/ci/cases/pr/C96_atm3DVar.yaml index 6141b8c94af..63568627a34 100644 --- a/dev/ci/cases/pr/C96_atm3DVar.yaml +++ b/dev/ci/cases/pr/C96_atm3DVar.yaml @@ -16,8 +16,8 @@ experiment: skip_ci_on_hosts: - gaeac5 - - wcoss2 - awsepicglobalworkflow + - wcoss2 workflow: engine: rocoto diff --git a/dev/ctests/cases/C48_ATM-gfs_atmos_prod_f000-f002.yaml b/dev/ctests/cases/C48_ATM-gfs_atmos_prod_f000-f002.yaml index acc5f88f179..f7562ba6bd5 100644 --- a/dev/ctests/cases/C48_ATM-gfs_atmos_prod_f000-f002.yaml +++ b/dev/ctests/cases/C48_ATM-gfs_atmos_prod_f000-f002.yaml @@ -45,32 +45,32 @@ input_files: copy: # Master GRIB2 files needed by atmos_products job (generated by forecast with WRITE_DOPOST=.true.) # These are the primary input files for exglobal_atmos_products.sh (line 40: MASTER_FILE) - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f001, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f001] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f002, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f002] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f001.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f001.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f002.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f002.grib2] # Surface flux GRIB2 files (used by exglobal_atmos_products.sh line 176: FLUX_FILE) - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf001.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf001.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf002.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf002.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f001.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f001.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f002.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f002.grib2] output_files: cmpfiles: # Output atmospheric GRIB2 products at multiple resolutions for f000 - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f000.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f000.idx] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pgrb2.0p50.f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pgrb2.0p50.f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pgrb2.0p50.f000.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pgrb2.0p50.f000.idx] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pgrb2.1p00.f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pgrb2.1p00.f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pgrb2.1p00.f000.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pgrb2.1p00.f000.idx] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f000.grib2.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f000.grib2.idx] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pres_a.0p50.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pres_a.0p50.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pres_a.0p50.f000.grib2.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p50/gfs.t{{ cyc }}z.pres_a.0p50.f000.grib2.idx] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pres_a.1p00.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pres_a.1p00.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pres_a.1p00.f000.grib2.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.pres_a.1p00.f000.grib2.idx] # Output atmospheric GRIB2 products for f001 (0p25 only - supplemental grids not at FHOUT_PGBS intervals) - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f001, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f001] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f001.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f001.idx] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f001.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f001.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f001.grib2.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f001.grib2.idx] # Output atmospheric GRIB2 products for f002 (0p25 only - supplemental grids not at FHOUT_PGBS intervals) - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f002, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f002] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f002.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pgrb2.0p25.f002.idx] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f002.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f002.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f002.grib2.idx, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/0p25/gfs.t{{ cyc }}z.pres_a.0p25.f002.grib2.idx] # Surface flux files - generated at 1p00 grid for ALL forecast hours - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.flux.1p00.f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/products/atmos/grib2/1p00/gfs.t{{ cyc }}z.flux.1p00.f000] diff --git a/dev/ctests/cases/C48_ATM-gfs_fcst_seg0.yaml b/dev/ctests/cases/C48_ATM-gfs_fcst_seg0.yaml index fe7c4fac16a..564c0fa82b5 100644 --- a/dev/ctests/cases/C48_ATM-gfs_fcst_seg0.yaml +++ b/dev/ctests/cases/C48_ATM-gfs_fcst_seg0.yaml @@ -48,209 +48,209 @@ output_files: - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.input.nml, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.input.nml] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.model_configure, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.model_configure] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ufs.configure, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ufs.configure] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf000.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf000.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf003.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf003.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf006.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf006.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf009.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf009.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf012.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf012.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf015.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf015.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf018.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf018.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf021.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf021.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf024.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf024.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf027.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf027.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf030.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf030.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf033.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf033.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf036.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf036.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf039.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf039.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf042.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf042.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf045.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf045.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf048.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf048.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf051.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf051.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf054.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf054.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf057.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf057.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf060.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf060.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf063.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf063.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf066.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf066.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf069.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf069.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf072.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf072.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf075.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf075.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf078.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf078.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf081.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf081.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf084.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf084.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf087.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf087.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf090.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf090.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf093.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf093.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf096.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf096.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf099.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf099.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf102.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf102.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf105.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf105.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf108.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf108.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf111.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf111.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf114.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf114.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf117.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf117.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf120.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf120.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf000.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf003.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf006.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf009.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf012.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf015.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf018.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf021.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf024.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf027.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf030.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf033.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf036.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf039.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf042.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf045.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf048.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf051.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf054.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf057.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf060.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf063.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf066.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf069.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf072.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf075.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf078.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf081.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf084.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf087.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf090.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf093.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf096.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf099.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf102.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf105.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf108.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf111.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf114.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf117.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf120.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf000.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf003.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf006.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf009.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf012.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf015.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf018.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf021.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf024.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf027.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf030.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf033.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf036.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf039.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf042.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf045.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf048.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf051.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf054.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf057.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf060.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf063.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf066.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf069.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf072.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf075.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf078.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf081.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf084.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf087.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf090.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf093.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf096.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf099.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf102.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf105.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf108.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf111.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf114.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf117.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf120.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f003, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f003] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f006, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f006] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f009, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f009] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f012, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f012] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f015, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f015] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f018, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f018] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f021, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f021] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f024, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f024] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f027, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f027] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f030, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f030] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f033, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f033] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f036, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f036] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f039, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f039] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f042, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f042] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f045, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f045] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f048, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f048] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f051, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f051] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f054, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f054] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f057, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f057] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f060, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f060] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f063, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f063] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f066, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f066] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f069, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f069] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f072, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f072] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f075, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f075] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f078, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f078] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f081, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f081] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f084, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f084] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f087, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f087] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f090, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f090] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f093, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f093] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f096, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f096] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f099, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f099] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f102, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f102] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f105, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f105] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f108, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f108] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f111, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f111] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f114, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f114] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f117, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f117] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f120, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f120] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf003.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf006.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf009.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf012.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf015.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf018.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf021.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf024.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf027.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf030.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf033.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf036.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf039.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf042.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf045.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf048.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf051.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf054.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf057.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf060.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf063.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf066.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf069.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf072.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf075.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf078.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf081.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf084.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf087.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf090.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf093.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf096.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf099.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf102.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf105.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf108.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf111.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf114.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf117.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf120.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f000.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f000.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f003.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f003.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f006.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f006.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f009.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f009.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f012.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f012.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f015.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f015.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f018.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f018.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f021.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f021.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f024.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f024.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f027.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f027.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f030.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f030.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f033.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f033.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f036.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f036.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f039.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f039.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f042.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f042.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f045.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f045.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f048.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f048.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f051.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f051.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f054.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f054.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f057.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f057.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f060.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f060.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f063.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f063.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f066.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f066.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f069.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f069.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f072.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f072.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f075.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f075.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f078.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f078.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f081.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f081.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f084.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f084.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f087.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f087.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f090.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f090.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f093.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f093.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f096.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f096.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f099.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f099.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f102.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f102.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f105.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f105.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f108.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f108.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f111.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f111.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f114.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f114.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f117.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f117.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f120.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f120.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f000.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f003.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f006.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f009.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f012.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f015.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f018.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f021.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f024.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f027.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f030.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f033.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f036.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f039.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f042.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f045.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f048.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f051.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f054.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f057.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f060.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f063.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f066.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f069.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f072.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f075.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f078.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f081.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f084.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f087.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f090.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f093.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f096.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f099.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f102.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f105.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f108.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f111.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f114.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f117.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f120.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f000.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f003.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f006.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f009.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f012.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f015.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f018.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f021.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f024.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f027.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f030.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f033.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f036.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f039.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f042.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f045.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f048.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f051.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f054.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f057.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f060.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f063.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f066.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f069.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f072.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f075.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f078.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f081.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f084.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f087.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f090.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f093.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f096.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f099.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f102.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f105.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f108.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f111.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f114.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f117.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f120.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f003.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f006.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f009.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f012.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f015.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f018.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f021.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f024.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f027.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f030.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f033.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f036.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f039.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f042.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f045.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f048.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f051.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f054.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f057.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f060.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f063.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f066.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f069.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f072.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f075.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f078.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f081.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f084.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f087.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f090.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f093.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f096.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f099.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f102.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f105.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f108.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f111.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f114.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f117.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f120.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f003.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f006.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f009.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f012.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f015.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f018.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f021.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f024.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f027.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f030.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f033.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f036.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f039.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f042.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f045.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f048.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f051.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f054.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f057.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f060.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f063.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f066.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f069.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f072.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f075.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f078.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f081.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f084.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f087.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f090.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f093.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f096.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f099.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f102.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f105.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f108.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f111.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f114.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f117.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f120.grib2] - [{{ SRC_DIR }}/logs/{{ PDY }}{{ cyc }}/gfs_fcst_seg0.log, {{ DST_DIR }}/logs/{{ PDY }}{{ cyc }}/gfs_fcst_seg0.log] diff --git a/dev/ctests/cases/C48_S2SW-gfs_fcst_seg0.yaml b/dev/ctests/cases/C48_S2SW-gfs_fcst_seg0.yaml index 727a5eb435b..3d14b94277c 100644 --- a/dev/ctests/cases/C48_S2SW-gfs_fcst_seg0.yaml +++ b/dev/ctests/cases/C48_S2SW-gfs_fcst_seg0.yaml @@ -144,211 +144,211 @@ output_files: - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.model_configure, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.model_configure] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ufs.configure, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ufs.configure] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ww3_shel.nml, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/conf/ufs.ww3_shel.nml] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf000.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf000.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf003.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf003.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf006.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf006.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf009.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf009.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf012.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf012.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf015.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf015.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf018.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf018.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf021.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf021.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf024.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf024.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf027.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf027.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf030.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf030.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf033.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf033.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf036.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf036.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf039.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf039.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf042.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf042.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf045.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf045.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf048.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf048.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf051.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf051.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf054.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf054.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf057.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf057.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf060.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf060.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf063.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf063.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf066.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf066.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf069.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf069.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf072.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf072.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf075.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf075.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf078.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf078.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf081.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf081.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf084.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf084.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf087.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf087.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf090.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf090.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf093.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf093.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf096.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf096.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf099.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf099.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf102.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf102.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf105.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf105.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf108.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf108.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf111.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf111.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf114.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf114.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf117.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf117.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf120.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.logf120.txt] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf000.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf003.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf006.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf009.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf012.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf015.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf018.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf021.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf024.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf027.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf030.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf033.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf036.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf039.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf042.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf045.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf048.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf051.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf054.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf057.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf060.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf063.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf066.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf069.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf072.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf075.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf078.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf081.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf084.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf087.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf090.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf093.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf096.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf099.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf102.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf105.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf108.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf111.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf114.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf117.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atmf120.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf000.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf003.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf006.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf009.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf012.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf015.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf018.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf021.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf024.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf027.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf030.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf033.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf036.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf039.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf042.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf045.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf048.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf051.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf054.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf057.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf060.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf063.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf066.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf069.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf072.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf075.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf078.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf081.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf084.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf087.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf090.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf093.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf096.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf099.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf102.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf105.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf108.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf111.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf114.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf117.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfcf120.nc] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f000] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f003, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f003] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f006, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f006] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f009, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f009] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f012, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f012] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f015, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f015] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f018, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f018] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f021, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f021] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f024, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f024] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f027, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f027] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f030, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f030] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f033, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f033] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f036, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f036] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f039, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f039] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f042, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f042] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f045, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f045] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f048, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f048] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f051, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f051] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f054, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f054] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f057, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f057] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f060, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f060] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f063, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f063] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f066, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f066] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f069, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f069] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f072, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f072] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f075, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f075] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f078, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f078] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f081, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f081] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f084, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f084] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f087, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f087] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f090, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f090] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f093, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f093] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f096, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f096] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f099, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f099] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f102, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f102] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f105, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f105] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f108, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f108] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f111, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f111] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f114, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f114] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f117, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f117] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f120, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.grb2f120] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf000.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf003.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf006.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf009.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf012.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf015.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf018.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf021.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf024.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf027.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf030.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf033.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf036.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf039.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf042.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf045.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf048.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf051.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf054.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf057.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf060.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf063.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf066.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf069.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf072.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf075.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf078.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf081.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf084.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf087.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf090.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf093.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf096.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf099.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf102.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf105.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf108.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf111.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf114.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf117.grib2] - - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sfluxgrbf120.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f000.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f000.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f003.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.lo.f003.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f006.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f006.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f009.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f009.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f012.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f012.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f015.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f015.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f018.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f018.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f021.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f021.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f024.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f024.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f027.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f027.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f030.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f030.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f033.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f033.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f036.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f036.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f039.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f039.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f042.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f042.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f045.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f045.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f048.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f048.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f051.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f051.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f054.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f054.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f057.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f057.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f060.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f060.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f063.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f063.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f066.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f066.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f069.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f069.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f072.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f072.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f075.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f075.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f078.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f078.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f081.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f081.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f084.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f084.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f087.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f087.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f090.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f090.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f093.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f093.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f096.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f096.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f099.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f099.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f102.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f102.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f105.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f105.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f108.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f108.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f111.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f111.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f114.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f114.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f117.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f117.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f120.txt, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.log.f120.txt] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f000.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f003.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f006.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f009.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f012.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f015.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f018.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f021.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f024.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f027.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f030.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f033.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f036.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f039.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f042.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f045.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f048.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f051.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f054.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f057.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f060.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f063.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f066.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f069.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f072.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f075.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f078.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f081.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f084.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f087.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f090.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f093.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f096.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f099.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f102.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f105.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f108.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f111.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f114.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f117.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.atm.f120.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f000.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f000.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f003.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f003.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f006.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f009.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f009.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f012.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f015.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f015.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f018.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f021.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f021.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f024.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f024.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f027.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f027.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f030.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f030.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f033.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f033.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f036.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f036.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f039.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f039.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f042.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f042.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f045.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f045.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f048.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f048.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f051.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f051.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f054.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f054.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f057.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f057.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f060.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f060.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f063.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f063.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f066.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f066.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f069.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f069.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f072.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f072.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f075.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f075.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f078.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f078.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f081.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f081.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f084.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f084.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f087.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f087.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f090.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f090.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f093.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f093.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f096.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f096.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f099.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f099.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f102.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f102.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f105.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f105.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f108.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f108.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f111.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f111.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f114.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f114.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f117.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f117.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f120.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/history/gfs.t{{ cyc }}z.sfc.f120.nc] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f003.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f006.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f009.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f012.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f015.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f018.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f021.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f024.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f027.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f030.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f033.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f036.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f039.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f042.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f045.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f048.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f051.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f054.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f057.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f060.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f063.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f066.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f069.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f072.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f075.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f078.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f081.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f084.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f087.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f090.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f093.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f096.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f099.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f102.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f105.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f108.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f111.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f114.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f117.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.master.f120.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f000.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f003.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f003.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f006.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f006.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f009.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f009.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f012.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f012.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f015.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f015.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f018.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f018.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f021.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f021.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f024.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f024.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f027.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f027.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f030.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f030.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f033.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f033.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f036.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f036.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f039.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f039.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f042.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f042.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f045.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f045.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f048.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f048.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f051.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f051.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f054.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f054.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f057.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f057.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f060.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f060.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f063.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f063.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f066.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f066.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f069.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f069.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f072.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f072.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f075.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f075.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f078.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f078.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f081.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f081.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f084.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f084.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f087.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f087.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f090.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f090.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f093.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f093.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f096.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f096.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f099.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f099.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f102.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f102.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f105.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f105.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f108.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f108.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f111.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f111.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f114.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f114.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f117.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f117.grib2] + - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f120.grib2, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/atmos/master/gfs.t{{ cyc }}z.sflux.f120.grib2] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f006.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f006.nc] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f012.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f012.nc] - [{{ SRC_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f018.nc, {{ DST_DIR }}/gfs.{{ PDY }}/{{ cyc }}/model/ice/history/gfs.ice.t{{ cyc }}z.6hr_avg.f018.nc] diff --git a/dev/ctests/cases/C48_S2SWA_gefs-gefs_fcst_mem001_seg0.yaml b/dev/ctests/cases/C48_S2SWA_gefs-gefs_fcst_mem001_seg0.yaml index 14899f9806a..629769a6bb9 100644 --- a/dev/ctests/cases/C48_S2SWA_gefs-gefs_fcst_mem001_seg0.yaml +++ b/dev/ctests/cases/C48_S2SWA_gefs-gefs_fcst_mem001_seg0.yaml @@ -50,15 +50,15 @@ input_files: # Ice restart (1 file) - from 06Z cycle - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/ice/restart/{{ PDY }}.{{ cyc }}0000.cice_model.res.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/ice/restart/{{ PDY }}.{{ cyc }}0000.cice_model.res.nc] - + # Ocean restart (1 file) - from 06Z cycle - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/ocean/restart/{{ PDY }}.{{ cyc }}0000.MOM.res.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/ocean/restart/{{ PDY }}.{{ cyc }}0000.MOM.res.nc] - + # Wave restart (1 file) - from 06Z cycle - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/wave/restart/{{ PDY }}.{{ cyc }}0000.restart.ww3, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc_offset }}/mem001/model/wave/restart/{{ PDY }}.{{ cyc }}0000.restart.ww3] - + # Wave prep file (1 file) - from 12Z cycle - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/wave/prep/gefs.t{{ cyc }}z.mod_def.glo_500.bin, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/wave/prep/gefs.t{{ cyc }}z.mod_def.glo_500.bin] @@ -66,24 +66,24 @@ input_files: output_files: cmpfiles: # Atmosphere forecast history files (18 files: atmf + sfcf at f000-f048 every 6 hours) - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf000.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf000.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf000.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf000.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf006.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf006.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf006.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf006.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf012.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf012.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf012.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf012.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf018.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf018.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf018.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf018.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf024.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf024.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf024.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf024.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf030.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf030.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf030.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf030.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf036.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf036.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf036.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf036.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf042.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf042.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf042.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf042.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf048.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atmf048.nc] - - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf048.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfcf048.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f000.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f000.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f000.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f000.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f006.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f006.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f006.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f006.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f012.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f012.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f012.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f012.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f018.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f018.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f018.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f018.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f024.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f024.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f024.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f024.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f030.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f030.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f030.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f030.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f036.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f036.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f036.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f036.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f042.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f042.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f042.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f042.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f048.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.atm.f048.nc] + - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f048.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/atmos/history/gefs.t{{ cyc }}z.sfc.f048.nc] # Ocean forecast history files (2 files: 24hr averages at f024 and f048) - [{{ SRC_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/ocean/history/gefs.ocean.t{{ cyc }}z.24hr_avg.f024.nc, {{ DST_DIR }}/gefs.{{ PDY }}/{{ cyc }}/mem001/model/ocean/history/gefs.ocean.t{{ cyc }}z.24hr_avg.f024.nc] diff --git a/dev/parm/config/gfs/config.base.j2 b/dev/parm/config/gfs/config.base.j2 index 057106a41fc..87c5132b7d3 100644 --- a/dev/parm/config/gfs/config.base.j2 +++ b/dev/parm/config/gfs/config.base.j2 @@ -428,7 +428,9 @@ if [[ "${MODE}" = "cycled" && "${SDATE}" = "${PDY}${cyc}" && ${EXP_WARM_START} = export DO_LAND_IAU=".false." fi -if [[ "${DOIAU_ENKF}" = "NO" ]]; then export IAUFHRS_ENKF="6,"; fi +if [[ "${DOIAU_ENKF}" = "NO" ]]; then + export IAUFHRS_ENKF="6," +fi # Determine restart intervals # For IAU, write restarts at beginning of window also diff --git a/dev/parm/config/gfs/config.cleanup b/dev/parm/config/gfs/config.cleanup index 44e2690f652..7b0b718f4dc 100644 --- a/dev/parm/config/gfs/config.cleanup +++ b/dev/parm/config/gfs/config.cleanup @@ -21,7 +21,7 @@ fi # Because arrays cannot be exported, list is a single string of comma- # separated values. This string is split to form an array at runtime. case ${RUN} in - gdas | gfs) exclude_string="*prepbufr*, *cnvstat*, *atmanl.nc" ;; + gdas | gfs) exclude_string="*prepbufr*, *cnvstat.tar*, *analysis.atm.a*.nc" ;; enkf*) exclude_string="*f006.ens*" ;; *) exclude_string="" ;; esac diff --git a/dev/parm/config/gfs/config.efcs b/dev/parm/config/gfs/config.efcs index 088668c2c4b..f6753061584 100644 --- a/dev/parm/config/gfs/config.efcs +++ b/dev/parm/config/gfs/config.efcs @@ -91,7 +91,12 @@ export FHZERO=6 # Set PREFIX_ATMINC to r when recentering on if [[ ${RECENTER_ENKF:-"YES"} == "YES" ]]; then - export PREFIX_ATMINC="r" + # TODO: Change this to 'recentered' for both JEDI and GSI recentered increments when JEDI has been brought into EE2 + if [[ "${DO_JEDIATMENS}" == "YES" ]]; then + export PREFIX_ATMINC="r" + else + export PREFIX_ATMINC="recentered_" + fi fi # Set restart interval to enable restarting forecasts after failures diff --git a/dev/parm/config/gfs/config.resources b/dev/parm/config/gfs/config.resources index d42ea8ca632..8643b6b95d1 100644 --- a/dev/parm/config/gfs/config.resources +++ b/dev/parm/config/gfs/config.resources @@ -231,7 +231,7 @@ case ${step} in tasks_per_node=$(( max_tasks_per_node / threads_per_task )) NTASKS=${ntasks} if [[ "${RUN}" = *gfs ]]; then - memory="1GB" + memory="2GB" fi ;; @@ -382,7 +382,7 @@ case ${step} in ntasks=1 threads_per_task=1 tasks_per_node=$(( max_tasks_per_node / threads_per_task )) - memory="3072M" + memory="4GB" ;; "aeroanlvar") @@ -1065,7 +1065,7 @@ case ${step} in ntasks=1 threads_per_task=1 tasks_per_node=1 - memory="4G" + memory="6G" ;; "genesis") @@ -1367,7 +1367,7 @@ case ${step} in ntasks=1 tasks_per_node=1 threads_per_task=1 - memory="3GB" + memory="4GB" ;; "npoess") @@ -1389,7 +1389,7 @@ case ${step} in elif [[ "${RUN}" = *gfs ]]; then ntasks=28 tasks_per_node=28 - memory="2GB" + memory="4GB" fi ;; @@ -1397,7 +1397,7 @@ case ${step} in walltime="00:05:00" ntasks=1 threads_per_task=1 - memory="4GB" + memory="6GB" tasks_per_node=1 ;; diff --git a/dev/parm/config/gfs/config.wavegempak b/dev/parm/config/gfs/config.wavegempak index dd2621f3c23..fa1f6ad3661 100644 --- a/dev/parm/config/gfs/config.wavegempak +++ b/dev/parm/config/gfs/config.wavegempak @@ -18,6 +18,8 @@ export FHOUT_HF_WAV=3 export FHMAX_HF_WAV=72 export FHOUT_WAV=6 export FHOUT_WAV_GFS=${FHOUT_WAV} -export FHMAX_GFS=180 # Note: This is the maximum forecast hour for GFS wave gempak output +if [[ ${FHMAX_GFS} -gt 180 ]]; then + export FHMAX_GFS=180 # Note: This is the maximum forecast hour for GFS wave gempak output +fi echo "END: config.wavegempak" diff --git a/dev/test/README.md b/dev/test/README.md index f751d4db5ce..56d54ecf4e0 100644 --- a/dev/test/README.md +++ b/dev/test/README.md @@ -1,5 +1,5 @@ # Global workflow comparison tools -A collection of tools to compare two different global workflow experiments for bitwise identicality. +A collection of tools to compare two different global workflow experiments for bitwise identicality. ## Disclaimer @@ -100,13 +100,13 @@ All fields are identical! And NetCDFs will look like this: ``` -=== atmf000.nc === +=== atm.f000.nc === 0 differences found -=== atmf003.nc === +=== atm.f003.nc === 0 differences found -=== atmf006.nc === +=== atm.f006.nc === 0 differences found -=== atmf009.nc === +=== atm.f009.nc === 0 differences found ... diff --git a/dev/test/diff_ROTDIR.sh b/dev/test/diff_ROTDIR.sh index a42af8283f5..d3b97870edd 100755 --- a/dev/test/diff_ROTDIR.sh +++ b/dev/test/diff_ROTDIR.sh @@ -28,8 +28,6 @@ # -h: print usage message and exit # -set -eu - # shellcheck disable=SC2311 # TODO: #FIXME: remove this when this script is corrected usage() { diff --git a/dev/test/diff_UFS_rundir.sh b/dev/test/diff_UFS_rundir.sh index f9b5125c71c..5cd81717f43 100755 --- a/dev/test/diff_UFS_rundir.sh +++ b/dev/test/diff_UFS_rundir.sh @@ -17,8 +17,6 @@ # -h: print usage message and exit # -set -eu - # shellcheck disable=SC2311 # TODO: #FIXME: remove this when this script is corrected usage() { @@ -106,7 +104,7 @@ done # NetCDF Files files="" -files="${files} $(basename_list '' "${dirA}"/atmf*.nc "${dirA}"/sfcf*.nc)" +files="${files} $(basename_list '' "${dirA}"/atm.f*.nc "${dirA}"/sfc.f*.nc)" if [[ -d "${dirA}/history" ]]; then files="$(basename_list 'history/' "${dirA}"/history/*.nc)" fi diff --git a/dev/test/f90nmlcmp.sh b/dev/test/f90nmlcmp.sh index c437c4db005..96cc0597aca 100755 --- a/dev/test/f90nmlcmp.sh +++ b/dev/test/f90nmlcmp.sh @@ -2,13 +2,11 @@ # Compare two F90 namelists (forward and backward) -set -eu - # shellcheck disable=SC2155,SC2312 HOMEgfs=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/../.." && pwd -P) declare -rx HOMEgfs -source "${HOMEgfs}/dev/ush/load_modules.sh" 1>/dev/null 2>&1 +source "${HOMEgfs}/dev/ush/load_modules.sh" run file1=${1:?} file2=${2:?} diff --git a/dev/test/g2cmp.sh b/dev/test/g2cmp.sh index 88902f0f977..b1783914c40 100755 --- a/dev/test/g2cmp.sh +++ b/dev/test/g2cmp.sh @@ -3,8 +3,6 @@ # Compare two grib2 files with wgrib2 # The files must have the same fields in the same order -set -eu - # shellcheck disable=SC2155,SC2312 HOMEgfs=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/../.." && pwd -P) declare -rx HOMEgfs @@ -12,7 +10,7 @@ declare -rx HOMEgfs file1=${1:?} file2=${2:?} -source "${HOMEgfs}/dev/ush/load_modules.sh" 1>/dev/null 2>&1 +source "${HOMEgfs}/dev/ush/load_modules.sh" run # Use wgrib2 to compute correlations and print any record that does not have corr=1 for mismatch #shellcheck disable=SC2312 diff --git a/dev/test/nccmp.sh b/dev/test/nccmp.sh index d02f9003719..b2963bde2ad 100755 --- a/dev/test/nccmp.sh +++ b/dev/test/nccmp.sh @@ -1,12 +1,10 @@ #! /usr/bin/env bash -set -eu - # shellcheck disable=SC2155,SC2312 HOMEgfs=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/../.." && pwd -P) declare -rx HOMEgfs -source "${HOMEgfs}/dev/ush/load_modules.sh" 1>/dev/null 2>&1 +source "${HOMEgfs}/dev/ush/load_modules.sh" run module load "nccmp/${nccmp_ver:-"1.9.0.1"}" file1=${1:?} diff --git a/dev/ush/load_modules.sh b/dev/ush/load_modules.sh old mode 100644 new mode 100755 diff --git a/dev/workflow/rocoto/gcafs_tasks.py b/dev/workflow/rocoto/gcafs_tasks.py index 52d7b5aca05..fd58db9e72a 100644 --- a/dev/workflow/rocoto/gcafs_tasks.py +++ b/dev/workflow/rocoto/gcafs_tasks.py @@ -757,13 +757,13 @@ def atmanlupp(self): atm_anl_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_ANALYSIS_TMPL"]) deps = [] - data = f'{atm_anl_path}/{self.run}.t@Hz.atmanl.nc' + data = f'{atm_anl_path}/{self.run}.t@Hz.analysis.atm.a006.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_anl_path}/{self.run}.t@Hz.sfcanl.nc' + data = f'{atm_anl_path}/{self.run}.t@Hz.analysis.sfc.a006.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_anl_path}/{self.run}.t@Hz.loganl.txt' + data = f'{atm_anl_path}/{self.run}.t@Hz.done.txt' dep_dict = {'type': 'data', 'data': data, 'age': 60} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps, dep_condition='and') @@ -833,13 +833,13 @@ def _upptask(self, upp_run="forecast", task_id="atmupp"): atm_hist_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_HISTORY_TMPL"]) deps = [] - data = f'{atm_hist_path}/{self.run}.t@Hz.atmf#fhr#.nc' + data = f'{atm_hist_path}/{self.run}.t@Hz.atm.f#fhr#.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_hist_path}/{self.run}.t@Hz.sfcf#fhr#.nc' + data = f'{atm_hist_path}/{self.run}.t@Hz.sfc.f#fhr#.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_hist_path}/{self.run}.t@Hz.atm.logf#fhr#.txt' + data = f'{atm_hist_path}/{self.run}.t@Hz.log.f#fhr#.txt' dep_dict = {'type': 'data', 'data': data, 'age': 60} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps, dep_condition='and') diff --git a/dev/workflow/rocoto/gfs_tasks.py b/dev/workflow/rocoto/gfs_tasks.py index e5c95f8510e..4575353bdd1 100644 --- a/dev/workflow/rocoto/gfs_tasks.py +++ b/dev/workflow/rocoto/gfs_tasks.py @@ -72,7 +72,7 @@ def prep_sfc(self): dep_dict = {'type': 'metatask', 'name': 'gdas_atmos_prod', 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} deps.append(rocoto.add_dependency(dep_dict)) atm_hist_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_HISTORY_TMPL"], {'RUN': 'gdas'}) - data = f'{atm_hist_path}/gdas.t@Hz.atmf009.nc' + data = f'{atm_hist_path}/gdas.t@Hz.atm.f009.nc' dep_dict = {'type': 'data', 'data': data, 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) @@ -108,7 +108,7 @@ def prep(self): dep_dict = {'type': 'metatask', 'name': 'gdas_atmos_prod', 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_hist_path}/gdas.t@Hz.atmf009.nc' + data = f'{atm_hist_path}/gdas.t@Hz.atm.f009.nc' dep_dict = {'type': 'data', 'data': data, 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} deps.append(rocoto.add_dependency(dep_dict)) data = f'{dump_path}/{self.run}.t@Hz.updated.status.tm00.bufr_d' @@ -881,7 +881,7 @@ def marineanlchkpt(self): dep_dict = {'type': 'task', 'name': f'enkf{self.run}_marineanlecen'} deps.append(rocoto.add_dependency(dep_dict)) if self.options['do_mergensst']: - data = f'&ROTDIR;/{self.run}.@Y@m@d/@H/atmos/{self.run}.t@Hz.sfcanl.nc' + data = f'&ROTDIR;/{self.run}.@Y@m@d/@H/atmos/{self.run}.t@Hz.analysis.sfc.a006.nc' dep_dict = {'type': 'data', 'data': data} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) @@ -1092,13 +1092,13 @@ def atmanlupp(self): atm_anl_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_ANALYSIS_TMPL"]) deps = [] - data = f'{atm_anl_path}/{self.run}.t@Hz.atmanl.nc' + data = f'{atm_anl_path}/{self.run}.t@Hz.analysis.atm.a006.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_anl_path}/{self.run}.t@Hz.sfcanl.nc' + data = f'{atm_anl_path}/{self.run}.t@Hz.analysis.sfc.a006.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_anl_path}/{self.run}.t@Hz.loganl.txt' + data = f'{atm_anl_path}/{self.run}.t@Hz.done.txt' dep_dict = {'type': 'data', 'data': data, 'age': 60} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps, dep_condition='and') @@ -1127,7 +1127,7 @@ def atmanlprod(self): atm_master_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_MASTER_TMPL"]) deps = [] - data = f'{atm_master_path}/{self.run}.t@Hz.master.grb2anl' + data = f'{atm_master_path}/{self.run}.t@Hz.master.analysis.grib2' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) @@ -1168,13 +1168,13 @@ def _upptask(self, upp_run="forecast", task_id="atmupp"): atm_hist_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_HISTORY_TMPL"]) deps = [] - data = f'{atm_hist_path}/{self.run}.t@Hz.atmf#fhr#.nc' + data = f'{atm_hist_path}/{self.run}.t@Hz.atm.f#fhr#.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_hist_path}/{self.run}.t@Hz.sfcf#fhr#.nc' + data = f'{atm_hist_path}/{self.run}.t@Hz.sfc.f#fhr#.nc' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atm_hist_path}/{self.run}.t@Hz.atm.logf#fhr#.txt' + data = f'{atm_hist_path}/{self.run}.t@Hz.log.f#fhr#.txt' dep_dict = {'type': 'data', 'data': data, 'age': 60} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps, dep_condition='and') @@ -1218,7 +1218,7 @@ def _atmosoceaniceprod(self, component: str): products_dict = {'atmos': {'config': 'atmos_products', 'history_path_tmpl': 'COM_ATMOS_MASTER_TMPL', - 'history_file_tmpl': f'{self.run}.t@Hz.master.grb2f#fhr3_last#'}, + 'history_file_tmpl': f'{self.run}.t@Hz.master.f#fhr3_last#.grib2'}, 'ocean': {'config': 'oceanice_products', 'history_path_tmpl': 'COM_OCEAN_HISTORY_TMPL', 'history_file_tmpl': f'{self.run}.t@Hz.6hr_avg.f#fhr3_nextp1#.nc'}, @@ -1521,13 +1521,13 @@ def fbwind(self): atmos_prod_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_GRIB_GRID_TMPL"], {'RUN': self.run, 'GRID': '0p25'}) deps = [] - data = f'{atmos_prod_path}/{self.run}.t@Hz.pgrb2.0p25.f006' + data = f'{atmos_prod_path}/{self.run}.t@Hz.pres_a.0p25.f006.grib2' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atmos_prod_path}/{self.run}.t@Hz.pgrb2.0p25.f012' + data = f'{atmos_prod_path}/{self.run}.t@Hz.pres_a.0p25.f012.grib2' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) - data = f'{atmos_prod_path}/{self.run}.t@Hz.pgrb2.0p25.f024' + data = f'{atmos_prod_path}/{self.run}.t@Hz.pres_a.0p25.f024.grib2' dep_dict = {'type': 'data', 'data': data, 'age': 120} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps, dep_condition='and') diff --git a/docs/source/jobs.rst b/docs/source/jobs.rst index dbc7bd39298..d0c0181d547 100644 --- a/docs/source/jobs.rst +++ b/docs/source/jobs.rst @@ -37,7 +37,7 @@ Jobs in the GFS Configuration | | analysis file on Gaussian grid. | +-------------------+-----------------------------------------------------------------------------------------------------------------------+ | analdiag | Creates netCDF diagnostic files containing observation values, innovation (O-F), error, quality control, as well as | -| | other analysis-related quantities (cnvstat, radstat, ozstat files). | +| | other analysis-related quantities (cnvstat.tar, radstat.tar, ozstat.tar files). | +-------------------+-----------------------------------------------------------------------------------------------------------------------+ | arch_vrfy | Archives select files from the deterministic model and cleans up older data. | +-------------------+-----------------------------------------------------------------------------------------------------------------------+ diff --git a/jobs/JGDAS_ATMOS_VERFOZN b/jobs/JGDAS_ATMOS_VERFOZN index a895fa9fb1b..764c2454014 100755 --- a/jobs/JGDAS_ATMOS_VERFOZN +++ b/jobs/JGDAS_ATMOS_VERFOZN @@ -21,7 +21,7 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMOUT_ATMOS_OZNMON:COM_ATMOS_OZNMON_TMPL -export oznstat="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.oznstat" +export oznstat="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.oznstat.tar" export TANKverf_ozn=${TANKverf_ozn:-${COMOUT_ATMOS_OZNMON}} if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p "${TANKverf_ozn}"; fi diff --git a/jobs/JGDAS_ATMOS_VERFRAD b/jobs/JGDAS_ATMOS_VERFRAD index cc2cf8b1192..9268afd37d4 100755 --- a/jobs/JGDAS_ATMOS_VERFRAD +++ b/jobs/JGDAS_ATMOS_VERFRAD @@ -24,8 +24,8 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ COMIN_ATMOS_RADMON_PREV:COM_ATMOS_RADMON_TMPL -export biascr="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.abias" -export radstat="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.radstat" +export biascr="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.abias.txt" +export radstat="${COMIN_ATMOS_ANALYSIS}/gdas.t${cyc}z.radstat.tar" export TANKverf_rad=${TANKverf_rad:-${COMOUT_ATMOS_RADMON}} export TANKverf_radM1=${TANKverf_radM1:-${COMIN_ATMOS_RADMON_PREV}} diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 8ef29061568..70567283f2f 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -35,7 +35,7 @@ RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ MEMDIR="ensstat" RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ COMIN_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL -export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.ensmean.nc" +export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}ensmean.atm.f006.nc" if [[ ! -f "${ATMGES_ENSMEAN}" ]]; then export err=1 err_exit "FILE MISSING: ATMGES_ENSMEAN == ${ATMGES_ENSMEAN}" @@ -53,22 +53,22 @@ fi export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" # Guess Bias correction coefficients related to control -export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias -export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc -export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air -export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat +export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias.txt +export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc.txt +export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air.txt +export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat.tar # Bias correction coefficients related to ensemble mean -export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.ensmean" -export ABIASPC="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.ensmean" -export ABIASAIR="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.ensmean" -export ABIASe="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.ensmean" +export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.txt" +export ABIASPC="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.txt" +export ABIASAIR="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.txt" +export ABIASe="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.txt" # Diagnostics related to ensemble mean -export GSISTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean" -export CNVSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean" -export OZNSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean" -export RADSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean" +export GSISTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean.tar" +export CNVSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean.tar" +export OZNSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean.tar" +export RADSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean.tar" # Select observations based on ensemble mean export RUN_SELECT="YES" diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 2cca77e6103..ab3a426808e 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -21,8 +21,7 @@ export APREFIX="${RUN}.t${cyc}z." export GPREFIX="${GDUMP_ENS}.t${gcyc}z." APREFIX_DET="${RUN/enkf/}.t${cyc}z." GPREFIX_DET="${GDUMP}.t${gcyc}z." - -export GSUFFIX=".ensmean.nc" +export GSUFFIX="ensmean." # Generate COM variables from templates RUN=${RUN/enkf/} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ @@ -43,7 +42,7 @@ RUN="${GDUMP}" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -r \ mkdir -p "${COMOUT_ATMOS_ANALYSIS}" -export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006${GSUFFIX}" +export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f006.nc" if [[ ! -f ${ATMGES_ENSMEAN} ]]; then export err=1 err_exit "FILE MISSING: ATMGES_ENSMEAN == ${ATMGES_ENSMEAN}" @@ -67,28 +66,28 @@ fi export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" # Deterministic analysis and increment files -export SFCANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}sfcanl.nc" -export DTFANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}dtfanl.nc" -export ATMANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}atmanl.nc" -export ATMINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}atminc.nc" +export SFCANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.sfc.a006.nc" +export DTFANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.dtf.a006.nc" +export ATMANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.atm.a006.nc" +export ATMINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.atm.i006.nc" # Guess Bias correction coefficients related to control -export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias -export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc -export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air -export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat +export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias.txt +export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc.txt +export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air.txt +export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat.tar # Bias correction coefficients related to ensemble mean -export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.ensmean" -export ABIASPC="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.ensmean" -export ABIASAIR="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.ensmean" -export ABIASe="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.ensmean" +export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.txt" +export ABIASPC="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.txt" +export ABIASAIR="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.txt" +export ABIASe="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.txt" # Diagnostics related to ensemble mean -export GSISTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean" -export CNVSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean" -export OZNSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean" -export RADSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean" +export GSISTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean.tar" +export CNVSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean.tar" +export OZNSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean.tar" +export RADSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean.tar" # Select observations based on ensemble mean export RUN_SELECT="YES" diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 428a3b43dc6..96d5dff079a 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -40,8 +40,8 @@ fi ############################################## # Send Alerts ############################################## -if [[ "${SENDDBN}" == "YES" ]]; then - "${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat" +if [[ "${SENDDBN}" == "YES" ]] ; then + "${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat.txt" fi ############################################## diff --git a/jobs/JGDAS_FIT2OBS b/jobs/JGDAS_FIT2OBS index ee7d9324a76..c07b20dd14c 100755 --- a/jobs/JGDAS_FIT2OBS +++ b/jobs/JGDAS_FIT2OBS @@ -20,9 +20,9 @@ export COM_VRFYARCH=${COM_VRFYARCH:-${ROTDIR}/vrfyarch} export PRPI=${COMIN_OBS}/${RUN}.t${vcyc}z.prepbufr # shellcheck disable=SC2153 -export sig1=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.atmanl.nc -export sfc1=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.atmanl.nc -export CNVS=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.cnvstat +export sig1=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.analysis.atm.a006.nc +export sfc1=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.analysis.atm.a006.nc +export CNVS=${COMIN_ANALYSIS}/${RUN}.t${vcyc}z.cnvstat.tar export OUTPUT_FILETYPE=${OUTPUT_FILETYPE:-netcdf} diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index 8598f281b83..88dc666d4b6 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -38,8 +38,9 @@ MEMDIR='ensstat' RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ mkdir -p "${COMOUT_ATMOS_ANALYSIS}" -export ATMGES="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.nc" +export ATMGES="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f006.nc" if [[ ! -f "${ATMGES}" ]]; then + export err=1 err_exit "FILE MISSING: ATMGES == ${ATMGES}" fi @@ -53,7 +54,7 @@ if [[ ${err} -ne 0 ]]; then fi if [[ "${DOHYBVAR}" == "YES" ]]; then - export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}atmf006.ensmean.nc" + export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}ensmean.atm.f006.nc" if [[ ! -f "${ATMGES_ENSMEAN}" ]]; then export err=2 err_exit "FILE MISSING: ATMGES_ENSMEAN == ${ATMGES_ENSMEAN}" @@ -90,9 +91,9 @@ fi # Send Alerts ############################################## if [[ "${SENDDBN}" == "YES" ]] && [[ "${RUN}" == "gdas" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias" - "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias_pc "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc" - "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias_air "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air" + "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.txt" + "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias_pc "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.txt" + "${DBNROOT}/bin/dbn_alert" MODEL GDAS_MSC_abias_air "${job}" "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.txt" fi ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 4d1bed36a9d..cf59158117a 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -34,7 +34,7 @@ RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ COMIN_OBS_PREV:COM_OBS_TMPL \ COMIN_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL -export ATMGES="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.nc" +export ATMGES="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f006.nc" if [[ ! -f "${ATMGES}" ]]; then export err=1 err_exit "FILE MISSING: ATMGES == ${ATMGES}" diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI index b09d924f9d4..e14bf395744 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI @@ -44,7 +44,7 @@ if [[ ${err} -ne 0 ]]; then fi # Write analysis log file -echo "${rCDUMP} ${PDY}${cyc} atmanl and sfcanl done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.loganl.txt" +echo "${rCDUMP} ${PDY}${cyc} atmanl and sfcanl done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.done.txt" ############################################## # End JOB SPECIFIC work diff --git a/jobs/JGLOBAL_ATMOS_CHGRES_GEN_CONTROL b/jobs/JGLOBAL_ATMOS_CHGRES_GEN_CONTROL index b535cc7af81..1d9c8f922d0 100755 --- a/jobs/JGLOBAL_ATMOS_CHGRES_GEN_CONTROL +++ b/jobs/JGLOBAL_ATMOS_CHGRES_GEN_CONTROL @@ -19,8 +19,8 @@ mkdir -p "${COMOUT_ATMOS_INPUT_MEM}" ############################################################### # Define the input ATM_FILE and SFC_FILE from GFS -export ATM_FILE="${COMINgfs:-}/gfs.${GDATE:0:8}/${GDATE:8:2}/atmos/history/gfs.t${GDATE:8:2}.atmf003.nc" -export SFC_FILE="${COMINgfs:-}/gfs.${GDATE:0:8}/${GDATE:8:2}/atmos/history/gfs.t${GDATE:8:2}.sfcf003.nc" +export ATM_FILE="${COMINgfs:-}/gfs.${GDATE:0:8}/${GDATE:8:2}/atmos/history/gfs.t${GDATE:8:2}.atm.f003.nc" +export SFC_FILE="${COMINgfs:-}/gfs.${GDATE:0:8}/${GDATE:8:2}/atmos/history/gfs.t${GDATE:8:2}.sfc.f003.nc" ############################################################### # Run relevant script ${CHGRESFCSTSH:-${SCRgfs}/exglobal_atmos_chgres_gen_control.sh} && true diff --git a/jobs/JGLOBAL_ATMOS_VMINMON b/jobs/JGLOBAL_ATMOS_VMINMON index 9eeca3b4178..4c859bfeb9f 100755 --- a/jobs/JGLOBAL_ATMOS_VMINMON +++ b/jobs/JGLOBAL_ATMOS_VMINMON @@ -23,7 +23,7 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ COMIN_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL -export gsistat="${COMIN_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.gsistat" +export gsistat="${COMIN_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.gsistat.txt" export M_TANKverf=${M_TANKverf:-${COMOUT_ATMOS_MINMON}} export M_TANKverfM1=${M_TANKverfM1:-${COMIN_ATMOS_MINMON_PREV}} diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 30cfe4adb9a..565a9f70c82 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -108,7 +108,7 @@ if [[ "${RUN}" =~ "enkf" ]] && [[ "${SENDDBN:-}" == YES ]]; then for ((fhr == FHOUT; fhr <= FHMAX; fhr + FHOUT)); do if ((fhr % 3 == 0)); then fhr3=$(printf %03i "${fhr}") - "${DBNROOT}/bin/dbn_alert" MODEL GFS_ENKF "${job}" "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfcf${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_ENKF "${job}" "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfc.f${fhr3}.nc" fi done fi diff --git a/parm/archive/enkf.yaml.j2 b/parm/archive/enkf.yaml.j2 index 8c542164fe4..ad69d0d284c 100644 --- a/parm/archive/enkf.yaml.j2 +++ b/parm/archive/enkf.yaml.j2 @@ -4,21 +4,21 @@ enkf: required: # Logs {% if is_gdas %} - {% for mem in range(1, nmem_ens + 1) %} + {% for mem in range(1, nmem_ens + 1) %} - "logs/{{ cycle_YMDH }}/{{ RUN }}_fcst_mem{{ '%03d' % mem }}.log" - {% endfor %} - {% for fhr in range(fhmin, fhmax + 1, fhout) %} + {% endfor %} + {% for fhr in range(fhmin, fhmax + 1, fhout) %} - "logs/{{ cycle_YMDH }}/{{ RUN }}_epos{{ '%03d' % (fhr - fhmin) }}.log" - {% endfor %} - {% if not DO_JEDIATMENS %} + {% endfor %} + {% if not DO_JEDIATMENS %} - "logs/{{ cycle_YMDH }}/{{ RUN }}_echgres.log" - {% endif %} + {% endif %} {% endif %} - "logs/{{ cycle_YMDH }}/{{ RUN }}_esfc.log" {% if not DO_JEDIATMENS %} - {% for grp in range(IAUFHRS | length) %} + {% for grp in range(IAUFHRS | length) %} - "logs/{{ cycle_YMDH }}/{{ RUN }}_ecen{{ '%03d' % grp }}.log" - {% endfor %} + {% endfor %} {% endif %} {% if lobsdiag_forenkf %} @@ -44,49 +44,49 @@ enkf: # Ensemble resolution {% if is_gdas %} - {% if DOHYBVAR %} - {% if DOIAU %} - {% for fhr in range(3, fhmax + 1, 3) %} - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head |replace('enkf','')}}atmf{{ '%03d' % fhr }}.ensres.nc" - {% endfor %} - {% endif %} - {% endif %} + {% if DOHYBVAR %} + {% if DOIAU %} + {% for fhr in range(3, fhmax + 1, 3) %} + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head |replace('enkf','')}}ensres.atm.f{{ '%03d' % fhr }}.nc" + {% endfor %} + {% endif %} + {% endif %} {% endif %} # Ensemble mean and spread {% if is_gdas %} - {% for fhr in range(3, fhmax + 1, 3) %} - - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.ensmean.nc" - - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}sfcf{{ '%03d' % fhr }}.ensmean.nc" - {% if ENKF_SPREAD %} - - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.ensspread.nc" - {% endif %} - {% endfor %} + {% for fhr in range(3, fhmax + 1, 3) %} + - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensmean.atm.f{{ '%03d' % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensmean.sfc.f{{ '%03d' % fhr }}.nc" + {% if ENKF_SPREAD %} + - "{{ COMIN_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensspread.atm.f{{ '%03d' % fhr }}.nc" + {% endif %} + {% endfor %} {% endif %} # Ensemble mean state {% if not DO_JEDIATMENS %} - {% set da_stat_files = ["enkfstat", - "gsistat.ensmean", - "cnvstat.ensmean", - "oznstat.ensmean", - "radstat.ensmean"] %} - {% set da_conf_files = [] %} - {% else %} - {% if lobsdiag_forenkf %} - {% set da_stat_files = [] %} - {% set da_conf_files = ["atmensanlobs.yaml", - "atmensanlsol.yaml", - "atmensanlfv3inc.yaml", - "correction_increment.yaml", - "ensemble_recenter.yaml"] %} + {% set da_stat_files = ["enkfstat.txt", + "gsistat.ensmean.tar", + "cnvstat.ensmean.tar", + "oznstat.ensmean.tar", + "radstat.ensmean.tar"] %} + {% set da_conf_files = [] %} {% else %} - {% set da_stat_files = ["atmensstat"]%} - {% set da_conf_files = ["atmensanlletkf.yaml", - "atmensanlfv3inc.yaml", - "correction_increment.yaml", - "ensemble_recenter.yaml"] %} - {% endif %} + {% if lobsdiag_forenkf %} + {% set da_stat_files = [] %} + {% set da_conf_files = ["atmensanlobs.yaml", + "atmensanlsol.yaml", + "atmensanlfv3inc.yaml", + "correction_increment.yaml", + "ensemble_recenter.yaml"] %} + {% else %} + {% set da_stat_files = ["atmensstat"]%} + {% set da_conf_files = ["atmensanlletkf.yaml", + "atmensanlfv3inc.yaml", + "correction_increment.yaml", + "ensemble_recenter.yaml"] %} + {% endif %} {% endif %} {% for file in da_stat_files %} - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}{{ file }}" @@ -97,55 +97,39 @@ enkf: {% if DO_JEDISNOWDA %} - "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}snowstat.tgz" - {% for itile in range(1,7) %} + {% for itile in range(1,7) %} # Snow analysis is 3dvar - "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/snowinc.{{ cycle_YMD }}.{{ cycle_HH }}0000.sfc_data.tile{{ itile }}.nc" - {% endfor %} + {% endfor %} {% endif %} # Ensemble mean analyses/increments - # 6-hr analysis/increment - {% if not DO_JEDIATMENS %} - {% if do_calc_increment %} - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmanl.ensmean.nc" - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atminc.ensmean.nc" - {% endif %} - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atmanl.ensmean.nc" - {% endif %} - # soil DA increments {% if DO_GSISOILDA %} - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}sfci006.nc" + - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}increment.sfc.i006.nc" {% endif %} - {% if DOIAU %} - # IAU increments/analyses - - {% for fhr in IAUFHRS if fhr != 6 %} - {% if not DO_JEDIATMENS %} - {% if do_calc_increment %} + # Atmospheric analyses/increment + {% for fhr in IAUFHRS %} + {% if not DO_JEDIATMENS %} + {% if do_calc_increment %} # Store analyses instead of increments - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atma{{ '%03d' % fhr }}.ensmean.nc" - {% else %} - {% if not DO_JEDIATMENS %} + - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensmean_analysis.atm.a{{ '%03d' % fhr }}.nc" + {% else %} # Store increments - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmi{{ '%03d' % fhr }}.ensmean.nc" - {% endif %} - {% endif %} - {% else %} + - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensmean_increment.atm.i{{ '%03d' % fhr }}.nc" + {% endif %} + {% else %} - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atma{{ '%03d' % fhr }}.ensmean.nc" - {% endif %} + {% endif %} # soil DA increments - {% if DO_GSISOILDA %} - - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}sfci{{ '%03d' % fhr }}.nc" - {% endif %} + {% if DO_GSISOILDA %} + - "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}increment.sfc.i{{ '%03d' % fhr }}.nc" + {% endif %} {% endfor %} - {% endif %} # End IAU # End of analysis mean increments/analyses {% if DOHYBVAR_OCN %} diff --git a/parm/archive/enkf_grp.yaml.j2 b/parm/archive/enkf_grp.yaml.j2 index 2b43653aaba..30ac0dcd2c7 100644 --- a/parm/archive/enkf_grp.yaml.j2 +++ b/parm/archive/enkf_grp.yaml.j2 @@ -3,45 +3,44 @@ enkf_grp: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}_grp{{ ENSGRP }}.tar" required: {% for mem in range(first_group_mem, last_group_mem + 1) %} - {% set imem = mem - first_group_mem %} + {% set imem = mem - first_group_mem %} # Construct member COM directories - {% set COMIN_ATMOS_ANALYSIS_MEM = COMIN_ATMOS_ANALYSIS_MEM_list[imem] %} - {% set COMIN_ATMOS_HISTORY_MEM = COMIN_ATMOS_HISTORY_MEM_list[imem] %} - {% set COMIN_ATMOS_RESTART_MEM = COMIN_ATMOS_RESTART_MEM_list[imem] %} + {% set COMIN_ATMOS_ANALYSIS_MEM = COMIN_ATMOS_ANALYSIS_MEM_list[imem] %} + {% set COMIN_ATMOS_HISTORY_MEM = COMIN_ATMOS_HISTORY_MEM_list[imem] %} + {% set COMIN_ATMOS_RESTART_MEM = COMIN_ATMOS_RESTART_MEM_list[imem] %} # Forecast data - {% if is_gdas %} - {% for fhr in range(3, 10, 3) %} - - "{{ COMIN_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}atmf{{ "%03d" % fhr }}.nc" - - "{{ COMIN_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}sfcf{{ "%03d" % fhr }}.nc" - {% endfor %} - {% endif %} + {% if is_gdas %} + {% for fhr in range(3, 10, 3) %} + - "{{ COMIN_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}atm.f{{ "%03d" % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}sfc.f{{ "%03d" % fhr }}.nc" + {% endfor %} + {% endif %} # Store the individual member analysis data - {% if not lobsdiag_forenkf %} - - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}gsistat" - {% endif %} - {% if DO_JEDIATMENS %} - {% for itile in range(6) %} + {% if not lobsdiag_forenkf %} + - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}gsistat.txt" + {% endif %} + {% if DO_JEDIATMENS %} + {% for itile in range(6) %} - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_ratminc.tile{{ itile+1 }}.nc" - {% endfor %} - {% else %} - {% if do_calc_increment %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}atmanl.nc" - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratminc.nc" - {% for iaufhr in IAUFHRS if iaufhr != 6 %} - {% set iaufhr = iaufhr %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratmi{{ '%03d' % iaufhr }}.nc" - {% endfor %} # iaufhr in IAUFHRS - {% endif %} - {% endif %} - - # soil DA increments - {% if is_gdas %} - {% if DO_GSISOILDA %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}sfci006.nc" - {% endif %} - {% endif %} + {% endfor %} + {% else %} + {% if do_calc_increment %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}analysis.atm.a006.nc" + {% else %} + {% for iaufhr in IAUFHRS %} + {% set iaufhr = iaufhr %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}recentered_increment.atm.i{{ '%03d' % iaufhr }}.nc" + {% endfor %} # iaufhr in IAUFHRS + {% endif %} + {% endif %} + + # soil DA increments + {% if is_gdas %} + {% if DO_GSISOILDA %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}increment.sfc.i006.nc" + {% endif %} + {% endif %} {% endfor %} # first_group_mem to last_group_mem diff --git a/parm/archive/enkf_restarta_grp.yaml.j2 b/parm/archive/enkf_restarta_grp.yaml.j2 index fe4d3c03ecc..59697d624d1 100644 --- a/parm/archive/enkf_restarta_grp.yaml.j2 +++ b/parm/archive/enkf_restarta_grp.yaml.j2 @@ -3,84 +3,78 @@ enkf_restarta_grp: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}_restarta_grp{{ ENSGRP }}.tar" required: {% for mem in range(first_group_mem, last_group_mem + 1) %} - {% set imem = mem - first_group_mem %} + {% set imem = mem - first_group_mem %} # Construct the pertinent member COM directories - {% set COMIN_ATMOS_ANALYSIS_MEM = COMIN_ATMOS_ANALYSIS_MEM_list[imem] %} - {% set COMIN_ATMOS_HISTORY_MEM = COMIN_ATMOS_HISTORY_MEM_list[imem] %} - {% set COMIN_ATMOS_RESTART_MEM = COMIN_ATMOS_RESTART_MEM_list[imem] %} - {% set COMIN_OCEAN_RESTART_MEM = COMIN_OCEAN_RESTART_MEM_list[imem] %} - {% set COMIN_ICE_RESTART_MEM = COMIN_ICE_RESTART_MEM_list[imem] %} - {% set COMIN_MED_RESTART_MEM = COMIN_MED_RESTART_MEM_list[imem] %} + {% set COMIN_ATMOS_ANALYSIS_MEM = COMIN_ATMOS_ANALYSIS_MEM_list[imem] %} + {% set COMIN_ATMOS_HISTORY_MEM = COMIN_ATMOS_HISTORY_MEM_list[imem] %} + {% set COMIN_ATMOS_RESTART_MEM = COMIN_ATMOS_RESTART_MEM_list[imem] %} + {% set COMIN_OCEAN_RESTART_MEM = COMIN_OCEAN_RESTART_MEM_list[imem] %} + {% set COMIN_ICE_RESTART_MEM = COMIN_ICE_RESTART_MEM_list[imem] %} + {% set COMIN_MED_RESTART_MEM = COMIN_MED_RESTART_MEM_list[imem] %} # Store bias data - {% if not lobsdiag_forenkf %} - - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias" - - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_air" - - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_int" - - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_pc" - {% endif %} + {% if not lobsdiag_forenkf %} + - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias.txt" + - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_air.txt" + - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_int.txt" + - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_pc.txt" + {% endif %} # Member surface analysis data - {% if DOIAU_ENKF %} - {% set anl_delta = "-3H" | to_timedelta %} - {% else %} - {% set anl_delta = "0H" | to_timedelta %} - {% endif %} - {% set anl_time = current_cycle | add_to_datetime(anl_delta) %} - {% for itile in range(1, 7) %} + {% if DOIAU_ENKF %} + {% set anl_delta = "-3H" | to_timedelta %} + {% else %} + {% set anl_delta = "0H" | to_timedelta %} + {% endif %} + {% set anl_time = current_cycle | add_to_datetime(anl_delta) %} + {% for itile in range(1, 7) %} - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ anl_time | to_YMD }}.{{ anl_time | strftime("%H") }}0000.sfcanl_data.tile{{ itile }}.nc" - {% endfor %} + {% endfor %} # Member atmospheric analysis data - {% if DO_JEDIATMENS %} - {% for itile in range(6) %} + {% if DO_JEDIATMENS %} + {% for itile in range(6) %} - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_ratminc.tile{{ itile+1 }}.nc" - {% endfor %} - {% else %} - {% if do_calc_increment %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}atmanl.nc" - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratminc.nc" - {% endif %} - {% endif %} + {% endfor %} + {% endif %} # Member increments - {% for iaufhr in IAUFHRS if iaufhr != 6 %} - {% set iaufhr = iaufhr %} - {% if do_calc_increment %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}atma{{ '%03d' % iaufhr }}.nc" - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratmi{{ '%03d' % iaufhr }}.nc" - {% endif %} - {% endfor %} # iaufhr in IAUFHRS + {% for iaufhr in IAUFHRS %} + {% set iaufhr = iaufhr %} + {% if do_calc_increment %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}analysis.atm.a{{ '%03d' % iaufhr }}.nc" + {% else %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}recentered_increment.atm.i{{ '%03d' % iaufhr }}.nc" + {% endif %} + {% endfor %} # iaufhr in IAUFHRS # soil DA increments - {% if DO_GSISOILDA %} - {% for iaufhr in IAUFHRS %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}sfci{{ '%03d' % iaufhr }}.nc" - {% endfor %} # iaufhr in IAUFHRS - {% if DO_LAND_IAU %} #sfc inc tiles needed for warm start - {% for itile in range(1,7) %} - - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/sfc_inc.tile{{ itile }}.nc" - {% endfor %} - {% endif %} - {% endif %} + {% if DO_GSISOILDA %} + {% for iaufhr in IAUFHRS %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}increment.sfc.i{{ '%03d' % iaufhr }}.nc" + {% endfor %} # iaufhr in IAUFHRS + {% if DO_LAND_IAU %} #sfc inc tiles needed for warm start + {% for itile in range(1,7) %} + - "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/increment.sfc.i006.tile{{ itile }}.nc" + {% endfor %} + {% endif %} + {% endif %} # Conventional data - {% if not lobsdiag_forenkf and not DO_JEDIATMENS %} + {% if not lobsdiag_forenkf and not DO_JEDIATMENS %} - "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}cnvstat" - {% endif %} + {% endif %} - {% if DOHYBVAR_OCN %} - {% if DOIAU_ENKF %} - {% set rst_delta = "+3H" | to_timedelta %} - {% else %} - {% set rst_delta = "+6H" | to_timedelta %} - {% endif %} # DOIAU_ENKF - {% set rst_time = current_cycle | add_to_datetime(rst_delta) %} + {% if DOHYBVAR_OCN %} + {% if DOIAU_ENKF %} + {% set rst_delta = "+3H" | to_timedelta %} + {% else %} + {% set rst_delta = "+6H" | to_timedelta %} + {% endif %} # DOIAU_ENKF + {% set rst_time = current_cycle | add_to_datetime(rst_delta) %} - "{{ COMIN_OCEAN_RESTART_MEM | relpath(ROTDIR) }}/{{ cycle_YMD }}.{{ rst_time | strftime("%H") }}0000.MOM.r*.nc" - "{{ COMIN_ICE_RESTART_MEM | relpath(ROTDIR) }}/{{ cycle_YMD }}.{{ rst_time | strftime("%H") }}0000.cice_model.res.nc" - "{{ COMIN_MED_RESTART_MEM | relpath(ROTDIR) }}/{{ cycle_YMD }}.{{ rst_time | strftime("%H") }}0000.ufs.cpld.cpl.r.nc" - {% endif %} # DOHYBVAR_OCN + {% endif %} # DOHYBVAR_OCN {% endfor %} # first_group_mem to last_group_mem diff --git a/parm/archive/gcafs_arcdir.yaml.j2 b/parm/archive/gcafs_arcdir.yaml.j2 index 20509794dd5..e1d84d89960 100644 --- a/parm/archive/gcafs_arcdir.yaml.j2 +++ b/parm/archive/gcafs_arcdir.yaml.j2 @@ -33,15 +33,15 @@ # GCAFS-specific files {% set gfs_files = [] %} {% for fhr in range(0, FHMAX_GFS + 1, FHOUT_GFS) %} - {% do gfs_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pgrb2.1p00.f" ~ '%03d'|format(fhr), + {% do gfs_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pres_a.1p00.f" ~ '%03d'|format(fhr) ~ ".grib2", ARCDIR ~ "/pgbf" ~ '%02d'|format(fhr) ~ "." ~ RUN ~ "." ~ cycle_YMDH ~ ".grib2"]) %} {% endfor %} # GCAFS Fit2Obs data {% set fit2obs_files = [] %} {% for fhr in range(0, FHMAX_FITS + 1, 6) %} - {% set sfcfile = "/" + head + "sfcf" + '%03d'|format(fhr) + ".nc" %} - {% set sigfile = "/" + head + "atmf" + '%03d'|format(fhr) + ".nc" %} + {% set sfcfile = "/" + head + "sfc.f" + '%03d'|format(fhr) + ".nc" %} + {% set sigfile = "/" + head + "atm.f" + '%03d'|format(fhr) + ".nc" %} {% do fit2obs_files.append([COMIN_ATMOS_HISTORY ~ "/" ~ sfcfile, VFYARC ~ "/" ~ RUN ~ "." ~ cycle_YMD ~ "/" ~ cycle_HH ~ "/" ~ sfcfile ]) %} {% do fit2obs_files.append([COMIN_ATMOS_HISTORY ~ "/" ~ sigfile, @@ -51,7 +51,7 @@ # GCDAS-specific files {% set gdas_files = [] %} {% for fhr in range(0, FHMAX + 1, FHOUT) %} - {% do gdas_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pgrb2.1p00.f" ~ '%03d'|format(fhr), + {% do gdas_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pres_a.1p00.f" ~ '%03d'|format(fhr) ~ ".grib2", ARCDIR ~ "/pgbf" ~ '%02d'|format(fhr) ~ "." ~ RUN ~ "." ~ cycle_YMDH ~ ".grib2"]) %} {% endfor %} @@ -81,9 +81,9 @@ {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "atmensstat", ARCDIR ~ "/atmensstat." ~ RUN ~ "." ~ cycle_YMDH ]) %} {% else %} - {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "enkfstat", + {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "enkfstat.txt", ARCDIR ~ "/enkfstat." ~ RUN ~ "." ~ cycle_YMDH ]) %} - {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "gsistat.ensmean", + {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "gsistat.ensmean.tar", ARCDIR ~ "/gsistat." ~ RUN ~ "." ~ cycle_YMDH ~ ".ensmean"]) %} {% endif %} diff --git a/parm/archive/gdas.yaml.j2 b/parm/archive/gdas.yaml.j2 index fbee67ac2f1..7163237c9b6 100644 --- a/parm/archive/gdas.yaml.j2 +++ b/parm/archive/gdas.yaml.j2 @@ -42,45 +42,42 @@ gdas: {% endif %} # Analysis GRIB2 (sub-sampled) data - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.anl" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.anl.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.analysis.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2.idx" # Analysis netCDF (raw) data - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmanl.nc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}sfcanl.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.atm.a006.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.sfc.a006.nc" {% if DOHYBVAR %} - # Ensemble analysis residual - {% if not DO_JEDIATMVAR %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmanl.ensres.nc" - {% endif %} + # Ensemble-resolution analysis {% if DOIAU %} - # Ensemble IAU analysis residuals - {% for fhr in IAUFHRS if fhr != 6 %} + # Ensemble-resolution IAU analyses + {% for fhr in IAUFHRS %} {% if not DO_JEDIATMVAR %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atma{{ '%03d' % fhr }}.ensres.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}ensres_analysis.atm.a{{ '%03d' % fhr }}.nc" {% endif %} {% endfor %} {% endif %} - # End of ensemble analysis mean residuals + # End of ensemble-resolution mean analyses {% endif %} # Analysis state {% if DO_JEDIATMVAR %} - - "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}atmanlvar.yaml" - - "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}atmanlfv3inc.yaml" + - "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}anlvar.atm.yaml" + - "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}anlvar.fv3.atm.yaml" - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmstat" {% else %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cnvstat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}oznstat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_air" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_pc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_int" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cnvstat.tar" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}oznstat.tar" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat.tar" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_air.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_pc.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_int.txt" {% endif %} {% if DO_AERO_ANL %} - "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat.tgz" @@ -144,18 +141,18 @@ gdas: - "logs/{{ cycle_YMDH }}/{{ RUN }}_atmos_upp_f{{ fhr3 }}.log" {% endif %} ## not WRITE_DOPOST # Forecast GRIB2 data - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ fhr3 }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ fhr3 }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ fhr3 }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ fhr3 }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ fhr3 }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ fhr3 }}.grib2.idx" # Forecast GRIB2 fluxes - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ fhr3 }}.grib2" - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ fhr3 }}.grib2.idx" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ fhr3 }}.grib2.idx" # FV3 log - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.logf{{ fhr3 }}.txt" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}log.f{{ fhr3 }}.txt" # Raw netCDF forecasts - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atmf{{ fhr3 }}.nc" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfcf{{ fhr3 }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.f{{ fhr3 }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfc.f{{ fhr3 }}.nc" {% endfor %} optional: {% if MODE == "cycled" %} @@ -180,10 +177,10 @@ gdas: {% set suffix = "" %} {% endif %} {% for type in oznmon_types %} - - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.anl.ctl" - - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.anl.{{ cycle_YMDH }}.ieee_d{{ suffix }}" - - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.ges.ctl" - - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.ges.{{ cycle_YMDH }}.ieee_d{{ suffix }}" + - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.analysis.ctl" + - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.analysis.{{ cycle_YMDH }}.ieee_d{{ suffix }}" + - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.guess.ctl" + - "{{ COMIN_ATMOS_OZNMON | relpath(ROTDIR) }}/{{ group }}/{{ type }}.guess.{{ cycle_YMDH }}.ieee_d{{ suffix }}" {% endfor %} {% endfor %} {% endif %} diff --git a/parm/archive/gdas_restarta.yaml.j2 b/parm/archive/gdas_restarta.yaml.j2 index 5abb8c683d2..c496e81b840 100644 --- a/parm/archive/gdas_restarta.yaml.j2 +++ b/parm/archive/gdas_restarta.yaml.j2 @@ -5,24 +5,22 @@ gdas_restarta: required: # Deterministic analysis increments {% if DO_JEDIATMVAR %} - {% for itile in range(6) %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atminc.tile{{ itile+1 }}.nc" - {% endfor %} - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atminc.nc" + {% for itile in range(6) %} + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atminc.tile{{ itile+1 }}.nc" + {% endfor %} {% endif %} # IAU increments - {% for iaufhr in IAUFHRS if iaufhr != 6 %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmi{{ "%03d" % iaufhr }}.nc" + {% for iaufhr in IAUFHRS %} + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}increment.atm.i{{ "%03d" % iaufhr }}.nc" {% endfor %} - + # Soil DA increments {% if DO_GSISOILDA %} - {% if DO_LAND_IAU %} #regridded tiles for land iau - {% for itile in range(1,7) %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/sfc_inc.tile{{ itile }}.nc" - {% endfor %} - {% endif %} + {% if DO_LAND_IAU %} #regridded tiles for land iau + {% for itile in range(1,7) %} + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/increment.sfc.i006.tile{{ itile }}.nc" + {% endfor %} + {% endif %} {% endif %} # Surface analysis tiles @@ -39,14 +37,14 @@ gdas_restarta: # Initial biases {% if not DO_JEDIATMVAR %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_air" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_pc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cnvstat" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_int" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}dtfanl.nc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}loginc.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_air.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_pc.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat.tar" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cnvstat.tar" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_int.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.dtf.a006.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.done.txt" {% else %} - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}rad_varbc_params.tar" {% endif %} diff --git a/parm/archive/gfs_arcdir.yaml.j2 b/parm/archive/gfs_arcdir.yaml.j2 index 91bcaf79204..7eb29c712cb 100644 --- a/parm/archive/gfs_arcdir.yaml.j2 +++ b/parm/archive/gfs_arcdir.yaml.j2 @@ -34,14 +34,14 @@ # Deterministic analysis files (generated for cycled experiments) {% set det_anl_files = [] %} # Analysis data (if we are running in cycled mode) - {% do det_anl_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pgrb2.1p00.anl", + {% do det_anl_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pres_a.1p00.analysis.grib2", ARCDIR ~ "/pgbanl." ~ RUN ~ "." ~ cycle_YMDH ~ ".grib2"]) %} {% if DO_JEDIATMVAR == True %} {% do det_anl_files.append([COMIN_ATMOS_ANALYSIS ~ "/" ~ head ~ "atmstat", ARCDIR ~ "/atmstat." ~ RUN ~ "." ~ cycle_YMDH ]) %} {% else %} - {% do det_anl_files.append([COMIN_ATMOS_ANALYSIS ~ "/" ~ head ~ "gsistat", + {% do det_anl_files.append([COMIN_ATMOS_ANALYSIS ~ "/" ~ head ~ "gsistat.txt", ARCDIR ~ "/gsistat." ~ RUN ~ "." ~ cycle_YMDH ]) %} {% endif %} @@ -65,7 +65,7 @@ # GFS-specific files {% set gfs_files = [] %} {% for fhr in range(0, FHMAX_GFS + 1, FHOUT_GFS) %} - {% do gfs_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pgrb2.1p00.f" ~ '%03d'|format(fhr), + {% do gfs_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pres_a.1p00.f" ~ '%03d'|format(fhr) ~ ".grib2", ARCDIR ~ "/pgbf" ~ '%02d'|format(fhr) ~ "." ~ RUN ~ "." ~ cycle_YMDH ~ ".grib2"]) %} {% endfor %} @@ -87,8 +87,8 @@ # GFS Fit2Obs data {% set fit2obs_files = [] %} {% for fhr in range(0, FHMAX_FITS + 1, 6) %} - {% set sfcfile = "/" + head + "sfcf" + '%03d'|format(fhr) + ".nc" %} - {% set sigfile = "/" + head + "atmf" + '%03d'|format(fhr) + ".nc" %} + {% set sfcfile = "/" + head + "sfc.f" + '%03d'|format(fhr) + ".nc" %} + {% set sigfile = "/" + head + "atm.f" + '%03d'|format(fhr) + ".nc" %} {% do fit2obs_files.append([COMIN_ATMOS_HISTORY ~ "/" ~ sfcfile, VFYARC ~ "/" ~ RUN ~ "." ~ cycle_YMD ~ "/" ~ cycle_HH ~ "/" ~ sfcfile ]) %} {% do fit2obs_files.append([COMIN_ATMOS_HISTORY ~ "/" ~ sigfile, @@ -98,7 +98,7 @@ # GDAS-specific files {% set gdas_files = [] %} {% for fhr in range(0, FHMAX + 1, FHOUT) %} - {% do gdas_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pgrb2.1p00.f" ~ '%03d'|format(fhr), + {% do gdas_files.append([COMIN_ATMOS_GRIB_1p00 ~ "/" ~ head ~ "pres_a.1p00.f" ~ '%03d'|format(fhr) ~ ".grib2", ARCDIR ~ "/pgbf" ~ '%02d'|format(fhr) ~ "." ~ RUN ~ "." ~ cycle_YMDH ~ ".grib2"]) %} {% endfor %} @@ -128,9 +128,9 @@ {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "atmensstat", ARCDIR ~ "/atmensstat." ~ RUN ~ "." ~ cycle_YMDH ]) %} {% else %} - {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "enkfstat", + {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "enkfstat.txt", ARCDIR ~ "/enkfstat." ~ RUN ~ "." ~ cycle_YMDH ]) %} - {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "gsistat.ensmean", + {% do enkf_files.append([COMIN_ATMOS_ANALYSIS_ENSSTAT ~ "/" ~ head ~ "gsistat.ensmean.tar", ARCDIR ~ "/gsistat." ~ RUN ~ "." ~ cycle_YMDH ~ ".ensmean"]) %} {% endif %} diff --git a/parm/archive/gfs_downstream.yaml.j2 b/parm/archive/gfs_downstream.yaml.j2 index 43aa4df4ba6..040292b7dd8 100644 --- a/parm/archive/gfs_downstream.yaml.j2 +++ b/parm/archive/gfs_downstream.yaml.j2 @@ -4,11 +4,11 @@ gfs_downstream: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_downstream.tar" required: {% if DO_GEMPAK %} - - "{{ COMIN_ATMOS_GEMPAK | relpath(ROTDIR) }}/gfs_{{ cycle_YMDH }}.sfc" - - "{{ COMIN_ATMOS_GEMPAK | relpath(ROTDIR) }}/gfs_{{ cycle_YMDH }}.snd" + - "{{ COMIN_ATMOS_GEMPAK | relpath(ROTDIR) }}/gfs_{{ cycle_YMDH }}.sfc.bufr" + - "{{ COMIN_ATMOS_GEMPAK | relpath(ROTDIR) }}/gfs_{{ cycle_YMDH }}.soundings.bufr" {% endif %} {% for i in range(1, NUM_SND_COLLECTIVES) %} - "{{ COMIN_ATMOS_BUFR | relpath(ROTDIR) }}/gfs_collective{{ i }}.fil" {% endfor %} - "{{ COMIN_ATMOS_BUFR | relpath(ROTDIR) }}/bufr.??????.{{ cycle_YMDH }}" - - "{{ COMIN_ATMOS_BUFR | relpath(ROTDIR) }}/gfs.t{{ cycle_HH }}z.bufrsnd.tar.gz" + - "{{ COMIN_ATMOS_BUFR | relpath(ROTDIR) }}/gfs.t{{ cycle_HH }}z.soundings.tar.gz" diff --git a/parm/archive/gfs_flux.yaml.j2 b/parm/archive/gfs_flux.yaml.j2 index 46bd0624b6a..a6f16f0b36c 100644 --- a/parm/archive/gfs_flux.yaml.j2 +++ b/parm/archive/gfs_flux.yaml.j2 @@ -4,6 +4,6 @@ gfs_flux: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_flux.tar" required: {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ '%03d' % fhr }}.grib2" - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} diff --git a/parm/archive/gfs_flux_1p00.yaml.j2 b/parm/archive/gfs_flux_1p00.yaml.j2 index 97fcd6e4d26..697c35a62b0 100644 --- a/parm/archive/gfs_flux_1p00.yaml.j2 +++ b/parm/archive/gfs_flux_1p00.yaml.j2 @@ -4,6 +4,6 @@ gfs_flux_1p00: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_flux_1p00.tar" required: {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}flux.1p00.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}flux.1p00.f{{ '%03d' % fhr }}.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}flux.1p00.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}flux.1p00.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} diff --git a/parm/archive/gfs_netcdfa.yaml.j2 b/parm/archive/gfs_netcdfa.yaml.j2 index 86a37683c87..ee5ad28c282 100644 --- a/parm/archive/gfs_netcdfa.yaml.j2 +++ b/parm/archive/gfs_netcdfa.yaml.j2 @@ -3,26 +3,19 @@ gfs_netcdfa: name: "GFS_NETCDFA" target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_netcdfa.tar" required: - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmanl.nc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}sfcanl.nc" - {% if DO_JEDIATMVAR %} - {% for itile in range(6) %} + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.atm.a006.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.sfc.a006.nc" + {% for iauhr in IAUFHRS %} + {% if DO_JEDIATMVAR %} + {% for itile in range(6) %} - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atminc.tile{{ itile+1 }}.nc" - {% endfor %} - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atminc.nc" - {% endif %} - {% for iauhr in IAUFHRS if iauhr != 6 %} - {% if DO_JEDIATMVAR %} - {% for itile in range(6) %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atmi{{ "%03d" % iauhr }}.tile{{ itile+1 }}.nc" - {% endfor %} - {% else %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmi{{ "%03d" % iauhr }}.nc" - {% endif %} + {% endfor %} + {% else %} + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}increment.atm.i{{ "%03d" % iauhr }}.nc" + {% endif %} {% endfor %} optional: {% if not DO_JEDIATMVAR %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}dtfanl.nc" - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}loginc.txt" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.dtf.a006.nc" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.done.txt" {% endif %} diff --git a/parm/archive/gfs_netcdfb.yaml.j2 b/parm/archive/gfs_netcdfb.yaml.j2 index 727f054715d..d400363e776 100644 --- a/parm/archive/gfs_netcdfb.yaml.j2 +++ b/parm/archive/gfs_netcdfb.yaml.j2 @@ -4,6 +4,6 @@ gfs_netcdfb: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_netcdfb.tar" required: {% for fhr in range(0, ARCH_GAUSSIAN_FHMAX + ARCH_GAUSSIAN_FHINC, ARCH_GAUSSIAN_FHINC) %} - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.nc" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfcf{{ '%03d' % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.f{{ '%03d' % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfc.f{{ '%03d' % fhr }}.nc" {% endfor %} diff --git a/parm/archive/gfs_pgrb2b.yaml.j2 b/parm/archive/gfs_pgrb2b.yaml.j2 index ca20d1a3d8c..d3e930f3080 100644 --- a/parm/archive/gfs_pgrb2b.yaml.j2 +++ b/parm/archive/gfs_pgrb2b.yaml.j2 @@ -4,16 +4,16 @@ gfs_pgrb2b: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfs_pgrb2b.tar" required: {% if MODE == "cycled" %} - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.anl" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.anl.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.anl" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.anl.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.analysis.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.analysis.grib2.idx" {% endif %} {% if ARCH_GAUSSIAN %} {% for fhr in range(0, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.f{{ '%03d' % fhr }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} {% endif %} diff --git a/parm/archive/gfsa.yaml.j2 b/parm/archive/gfsa.yaml.j2 index de65f137b92..1f41488f4b8 100644 --- a/parm/archive/gfsa.yaml.j2 +++ b/parm/archive/gfsa.yaml.j2 @@ -19,10 +19,10 @@ gfsa: {% if MODE == "cycled" %} # Analysis GRIB2 (gridded) data - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.anl" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.anl.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.analysis.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2.idx" {% if DO_VMINMON %} # Minimization monitor @@ -39,7 +39,7 @@ gfsa: - "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}atmanlfv3inc.yaml" - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmstat" {% else %} - - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat" + - "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat.txt" {% endif %} {% if DO_AERO_ANL %} - "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat.tgz" @@ -66,9 +66,9 @@ gfsa: # Forecast GRIB2 products {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.logf{{ '%03d' % fhr }}.txt" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}log.f{{ '%03d' % fhr }}.txt" {% endfor %} optional: diff --git a/parm/archive/gfsb.yaml.j2 b/parm/archive/gfsb.yaml.j2 index e6ffa05766d..22711d8222c 100644 --- a/parm/archive/gfsb.yaml.j2 +++ b/parm/archive/gfsb.yaml.j2 @@ -5,16 +5,16 @@ gfsb: required: {% if MODE == "cycled" %} # GRIB2 (subsampled) analysis data - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.anl" - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.anl.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.anl.idx" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.analysis.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2.idx" {% endif %} # GRIB2 orecast data {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ '%03d' % fhr }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} diff --git a/parm/archive/master_gcafs.yaml.j2 b/parm/archive/master_gcafs.yaml.j2 index f84b080c7b4..e0eb1df623f 100644 --- a/parm/archive/master_gcafs.yaml.j2 +++ b/parm/archive/master_gcafs.yaml.j2 @@ -11,30 +11,30 @@ datasets: target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gcafs.tar" required: {% for fhr in range(0, ARCH_GAUSSIAN_FHMAX + ARCH_GAUSSIAN_FHINC, ARCH_GAUSSIAN_FHINC) %} - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.nc" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfcf{{ '%03d' % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.f{{ '%03d' % fhr }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfc.f{{ '%03d' % fhr }}.nc" {% endfor %} {% if ARCH_GAUSSIAN %} {% for fhr in range(0, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2b.0p25.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2b.1p00.f{{ '%03d' % fhr }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_b.0p25.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_b.1p00.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} {% endif %} - "{{ COMIN_CONF | relpath(ROTDIR) }}/ufs.input.nml" # Forecast GRIB2 products {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.logf{{ '%03d' % fhr }}.txt" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}log.f{{ '%03d' % fhr }}.txt" {% endfor %} # GRIB2 forecast data {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p50.f{{ '%03d' % fhr }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ '%03d' % fhr }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ '%03d' % fhr }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p50 | relpath(ROTDIR) }}/{{ head }}pres_a.0p50.f{{ '%03d' % fhr }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ '%03d' % fhr }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ '%03d' % fhr }}.grib2.idx" {% endfor %} # Archive the EXPDIR if requested {% if archive_expdir %} diff --git a/parm/archive/master_gcdas.yaml.j2 b/parm/archive/master_gcdas.yaml.j2 index bcfd585f3de..88c704c5ef6 100644 --- a/parm/archive/master_gcdas.yaml.j2 +++ b/parm/archive/master_gcdas.yaml.j2 @@ -34,18 +34,18 @@ datasets: - "logs/{{ cycle_YMDH }}/{{ RUN }}_atmos_upp_f{{ fhr3 }}.log" {% endif %} ## not WRITE_DOPOST # Forecast GRIB2 data - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ fhr3 }}" - - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pgrb2.0p25.f{{ fhr3 }}.idx" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ fhr3 }}" - - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pgrb2.1p00.f{{ fhr3 }}.idx" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_GRIB_0p25 | relpath(ROTDIR) }}/{{ head }}pres_a.0p25.f{{ fhr3 }}.grib2.idx" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.f{{ fhr3 }}.grib2.idx" # Forecast GRIB2 fluxes - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ fhr3 }}.grib2" - - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sfluxgrbf{{ fhr3 }}.grib2.idx" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ fhr3 }}.grib2" + - "{{ COMIN_ATMOS_MASTER | relpath(ROTDIR) }}/{{ head }}sflux.f{{ fhr3 }}.grib2.idx" # FV3 log - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.logf{{ fhr3 }}.txt" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}log.f{{ fhr3 }}.txt" # Raw netCDF forecasts - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atmf{{ fhr3 }}.nc" - - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfcf{{ fhr3 }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}atm.f{{ fhr3 }}.nc" + - "{{ COMIN_ATMOS_HISTORY | relpath(ROTDIR) }}/{{ head }}sfc.f{{ fhr3 }}.nc" {% endfor %} # Now get the restart files. {% for r_time in range(restart_interval_gdas, FHMAX + 1, restart_interval_gdas) %} diff --git a/parm/post/upp.yaml b/parm/post/upp.yaml index dd9aed3358e..2193b11d48c 100644 --- a/parm/post/upp.yaml +++ b/parm/post/upp.yaml @@ -19,12 +19,12 @@ analysis: data_in: copy: - ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-anl.txt", "{{ DATA }}/postxconfig-NT.txt"] - - ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmanl.nc", "{{ DATA }}/{{ atmos_filename }}"] - - ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcanl.nc", "{{ DATA }}/{{ flux_filename }}"] + - ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.analysis.atm.a006.nc", "{{ DATA }}/{{ atmos_filename }}"] + - ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.analysis.sfc.a006.nc", "{{ DATA }}/{{ flux_filename }}"] data_out: copy: - - ["{{ DATA }}/GFSPRS.GrbF00", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.grb2anl"] - - ["{{ DATA }}/GFSPRS.GrbF00.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.grb2ianl"] + - ["{{ DATA }}/GFSPRS.GrbF00", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.analysis.grib2"] + - ["{{ DATA }}/GFSPRS.GrbF00.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.analysis.grib2.idx"] forecast: config: @@ -36,14 +36,14 @@ forecast: {% else %} - ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-two.txt", "{{ DATA }}/postxconfig-NT.txt"] {% endif %} - - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] - - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] + - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atm.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] + - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfc.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] data_out: copy: - - ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.grb2f{{ '%03d' % forecast_hour }}"] - - ["{{ DATA }}/GFSFLX.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfluxgrbf{{ '%03d' % forecast_hour }}.grib2"] - - ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.grb2if{{ '%03d' % forecast_hour }}"] - - ["{{ DATA }}/GFSFLX.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfluxgrbf{{ '%03d' % forecast_hour }}.grib2.idx"] + - ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.f{{ '%03d' % forecast_hour }}.grib2"] + - ["{{ DATA }}/GFSFLX.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sflux.f{{ '%03d' % forecast_hour }}.grib2"] + - ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.f{{ '%03d' % forecast_hour }}.grib2.idx"] + - ["{{ DATA }}/GFSFLX.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sflux.f{{ '%03d' % forecast_hour }}.grib2.idx"] goes: config: @@ -82,9 +82,9 @@ goes: - ["{{ 'CRTM_FIX' | getenv }}/AerosolCoeff.bin", "{{ DATA }}/"] - ["{{ 'CRTM_FIX' | getenv }}/CloudCoeff.bin", "{{ DATA }}/"] - ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-goes.txt", "{{ DATA }}/postxconfig-NT.txt"] - - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] - - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] + - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atm.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] + - ["{{ COMIN_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfc.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] data_out: copy: - - ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2f{{ '%03d' % forecast_hour }}"] - - ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2if{{ '%03d' % forecast_hour }}"] + - ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master-goes.f{{ '%03d' % forecast_hour }}.grib2"] + - ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master-goes.f{{ '%03d' % forecast_hour }}.grib2.idx"] diff --git a/parm/stage/analysis.yaml.j2 b/parm/stage/analysis.yaml.j2 index f0f518841f5..326f7a525cd 100644 --- a/parm/stage/analysis.yaml.j2 +++ b/parm/stage/analysis.yaml.j2 @@ -10,7 +10,9 @@ analysis: {% for mem in range(first_mem, last_mem + 1) %} {% set imem = mem - first_mem %} {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} + {% if DO_JEDIATMVAR %} + {% for itile in range(6) %} {% for ftype in ["atminc", "atmi009", "atmi003", "ratminc", "ratmi009", "ratmi003"] %} {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z.cubed_sphere_grid_" ~ ftype ~ ".tile" ~ (itile+1) ~ ".nc") %} @@ -18,30 +20,67 @@ analysis: {% endif %} {% endfor %} {% endfor %} - {% for ftype in ["abias", "abias_air", "abias_int", "abias_pc", "rad_varbc_params.tar"] %} - {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ ftype) %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ ftype }}", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"] + + # TODO: make these filenames the same after RE-staging inputs with EE2-compliant filenames + {% for source_ftype, dest_ftype in [ + ("abias", "abias.txt"), + ("abias_air", "abias_air.txt"), + ("abias_int", "abias_int.txt"), + ("abias_pc", "abias_pc.txt"), + ("rad_varbc_params.tar", "rad_varbc_params.tar")] %} + {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ source_ftype) %} + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ source_ftype }}", + "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ dest_ftype }}"] {% endif %} {% endfor %} + {% else %} - {% for ftype in ["abias", "abias_air", "abias_int", "abias_pc", "atminc.nc", "atmi009.nc", "atmi003.nc", "radstat", "ratminc.nc", "ratmi009.nc", "ratmi003.nc", "rad_varbc_params.tar"] %} - {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ ftype) %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ ftype }}", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"] + + # TODO: make these filenames the same after RE-staging inputs with EE2-compliant filenames + {% for source_ftype, dest_ftype in + [ + ("atminc.nc", "increment.atm.i006.nc"), + ("atmi009.nc", "increment.atm.i009.nc"), + ("atmi003.nc", "increment.atm.i003.nc"), + ("ratmi009.nc", "recentered_increment.atm.i009.nc"), + ("ratminc.nc", "recentered_increment.atm.i006.nc"), + ("ratmi003.nc", "recentered_increment.atm.i003.nc"), + ("abias", "abias.txt"), + ("radstat", "radstat.tar"), + ("abias_air", "abias_air.txt"), + ("abias_int", "abias_int.txt"), + ("abias_pc", "abias_pc.txt"), + ("rad_varbc_params.tar", "rad_varbc_params.tar") + ] %} + {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ source_ftype) %} + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ source_ftype }}", + "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ dest_ftype }}"] {% endif %} {% endfor %} + {% endif %} + + # TODO: make these filenames the same after RE-staging inputs with EE2-compliant filenames {% if DO_GSISOILDA %} - {% for ftype in ["sfci003.nc", "sfci006.nc", "sfci009.nc"] %} - {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ ftype) %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ ftype }}", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"] + {% for source_ftype, dest_ftype in + [ + ("sfci003.nc", "increment.sfc.i003.nc"), + ("sfci006.nc", "increment.sfc.i006.nc"), + ("sfci009.nc", "increment.sfc.i009.nc") + ] %} + {% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z." ~ source_ftype) %} + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ source_ftype }}", + "{{ COMOUT_ATMOS_ANALYSIS_MEM }}{{ RUN }}.t{{ current_cycle_HH }}z.{{ dest_ftype }}"] {% endif %} {% endfor %} - {% if DO_LAND_IAU %} + + {% if DO_LAND_IAU %} {% for itile in range(1,7) %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/sfc_inc.tile{{ itile }}.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"] + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/sfc_inc.tile{{ itile }}.nc", + "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/increment.sfc.i006.tile{{ itile }}.nc"] {% endfor %} - {% endif %} - {% endif %} - + {% endif %} + {% endif %} + {% endfor %} # mem loop {% endif %} diff --git a/parm/stage/atmosphere_cold_RT.yaml.j2 b/parm/stage/atmosphere_cold_RT.yaml.j2 index b86f09b4a6e..9d7b869f915 100644 --- a/parm/stage/atmosphere_cold_RT.yaml.j2 +++ b/parm/stage/atmosphere_cold_RT.yaml.j2 @@ -12,8 +12,8 @@ atmosphere_cold_RT: {% set current_path = COMOUT_ATMOS_ANALYSIS_MEM %} {% set previous_path = COMOUT_ATMOS_RESTART_PREV_MEM %} {% set surface_atm_path = COMOUT_ATMOS_HISTORY_MEM %} - - ["{{ DIAU_cold_previous_file }}", "{{ previous_path}}"] - - ["{{ DIAU_cold_current_file }}", "{{ current_path }}"] - - ["{{ DIAU_current_file }}", "{{ current_path }}"] - - ["{{ surface_file }}", "{{ surface_atm_path }}"] - - ["{{ atm_file }}", "{{ surface_atm_path }}"] + - ["{{ DIAU_cold_previous_file }}", "{{ previous_path}}/gdas.t{{ previous_cycle_HH }}z.ensres_analysis.atm.i003.nc"] + - ["{{ DIAU_cold_current_file }}", "{{ current_path }}/gfs.t{{ current_cycle_HH }}z.increment.atm.i006.nc"] + - ["{{ DIAU_current_file }}", "{{ current_path }}/gfs.t{{ current_cycle_HH }}z.analysis.atm.i006.nc"] + - ["{{ atm_file }}", "{{ surface_atm_path }}/gdas.t{{ previous_cycle_HH }}z.sfc.f003.nc"] + - ["{{ surface_file }}", "{{ surface_atm_path }}/gdas.t{{ previous_cycle_HH }}z.ensres.atm.f003.nc"] diff --git a/parm/stage/atmosphere_ens_perturbations.yaml.j2 b/parm/stage/atmosphere_ens_perturbations.yaml.j2 index c3b33060ce3..8f9fc857042 100644 --- a/parm/stage/atmosphere_ens_perturbations.yaml.j2 +++ b/parm/stage/atmosphere_ens_perturbations.yaml.j2 @@ -9,5 +9,5 @@ atmosphere_ens_perturbation: {% for mem in range(first_mem + 1, last_mem + 1) %} {% set imem = mem - first_mem %} {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.atminc.nc"] + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.increment.atm.i006.nc"] {% endfor %} # mem loop diff --git a/parm/stage/atmosphere_warm_RT.yaml.j2 b/parm/stage/atmosphere_warm_RT.yaml.j2 index 362c9f4d599..d432f12a128 100644 --- a/parm/stage/atmosphere_warm_RT.yaml.j2 +++ b/parm/stage/atmosphere_warm_RT.yaml.j2 @@ -11,9 +11,15 @@ atmosphere_warm_RT: {% set increment_destination_path = COMOUT_ATMOS_ANALYSIS_MEM %} # Include increment files - {% for ftype in ["ratmi003.nc", "ratmi009.nc", "ratminc.nc"] %} - {% set file = increment_mem_path ~ ftype %} - - ["{{ file }}", "{{ increment_destination_path }}"] + # TODO: make these filenames the same after RE-staging inputs with EE2-compliant filenames + {% for source_ftype, dest_ftype in + [ + ("ratmi003.nc", "recentered_increment.atm.i003.nc"), + ("ratmi006.nc", "recentered_increment.atm.i006.nc"), + ("ratmi009.nc", "recentered_increment.atm.i009.nc") + ] %} + {% set source_file = increment_mem_path ~ source_ftype %} + - ["{{ source_file }}", "{{ increment_destination_path }}/enkfgfs.t{{ current_cycle_HH }}z.{{ dest_ftype }}"] {% endfor %} {% if path_exists(ICSDIR) %} diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh index 80987d571ef..04e720d3e64 100755 --- a/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/scripts/exgdas_atmos_chgres_forenkf.sh @@ -51,22 +51,22 @@ SIGLEVEL=${SIGLEVEL:-${FIXgfs}/am/global_hyblev.l${LEVS}.txt} APREFIX=${APREFIX:-""} APREFIX_ENS=${APREFIX_ENS:-""} # at full resolution -ATMF03=${ATMF03:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf003.nc} -ATMF04=${ATMF04:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf004.nc} -ATMF05=${ATMF05:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf005.nc} -ATMF06=${ATMF06:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf006.nc} -ATMF07=${ATMF07:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf007.nc} -ATMF08=${ATMF08:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf008.nc} -ATMF09=${ATMF09:-${COMIN_ATMOS_HISTORY}/${APREFIX}atmf009.nc} +ATMF03=${ATMF03:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f003.nc} +ATMF04=${ATMF04:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f004.nc} +ATMF05=${ATMF05:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f005.nc} +ATMF06=${ATMF06:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f006.nc} +ATMF07=${ATMF07:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f007.nc} +ATMF08=${ATMF08:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f008.nc} +ATMF09=${ATMF09:-${COMIN_ATMOS_HISTORY}/${APREFIX}atm.f009.nc} # at ensemble resolution -ATMF03ENS=${ATMF03ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf003.ensres.nc} -ATMF04ENS=${ATMF04ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf004.ensres.nc} -ATMF05ENS=${ATMF05ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf005.ensres.nc} -ATMF06ENS=${ATMF06ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf006.ensres.nc} -ATMF07ENS=${ATMF07ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf007.ensres.nc} -ATMF08ENS=${ATMF08ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf008.ensres.nc} -ATMF09ENS=${ATMF09ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}atmf009.ensres.nc} -ATMFCST_ENSRES=${ATMFCST_ENSRES:-${COMIN_ATMOS_HISTORY_MEM}/${APREFIX_ENS}atmf006.nc} +ATMF03ENS=${ATMF03ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f003.nc} +ATMF04ENS=${ATMF04ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f004.nc} +ATMF05ENS=${ATMF05ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f005.nc} +ATMF06ENS=${ATMF06ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f006.nc} +ATMF07ENS=${ATMF07ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f007.nc} +ATMF08ENS=${ATMF08ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f008.nc} +ATMF09ENS=${ATMF09ENS:-${COMOUT_ATMOS_HISTORY}/${APREFIX}ensres.atm.f009.nc} +ATMFCST_ENSRES=${ATMFCST_ENSRES:-${COMIN_ATMOS_HISTORY_MEM}/${APREFIX_ENS}atm.f006.nc} # Set script / GSI control parameters DOHYBVAR=${DOHYBVAR:-"NO"} diff --git a/scripts/exgdas_atmos_nawips.sh b/scripts/exgdas_atmos_nawips.sh index 4f1415baa51..786b1c2b431 100755 --- a/scripts/exgdas_atmos_nawips.sh +++ b/scripts/exgdas_atmos_nawips.sh @@ -41,7 +41,7 @@ pdsext=no GEMGRD="${RUN}_${grid}_${PDY}${cyc}f${fhr3}" source_dirvar="COMOUT_ATMOS_GRIB_${grid}" -export GRIBIN="${!source_dirvar}/${RUN}.${cycle}.pgrb2.${grid}.f${fhr3}" +export GRIBIN="${!source_dirvar}/${RUN}.${cycle}.pres_a.${grid}.f${fhr3}.grib2" GRIBIN_chk="${GRIBIN}.idx" if [[ ! -r "${GRIBIN_chk}" ]]; then @@ -55,7 +55,7 @@ startmsg ${NAGRIB} << EOF GBFILE = grib${fhr3} -INDXFL = +INDXFL = GDOUTF = ${GEMGRD} PROJ = ${proj} GRDAREA = ${grdarea} @@ -65,7 +65,7 @@ CPYFIL = ${cpyfil} GAREA = ${garea} OUTPUT = ${output} GBTBLS = ${gbtbls} -GBDIAG = +GBDIAG = PDSEXT = ${pdsext} l r diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh index f5fcb53bf97..d2a4ff726aa 100755 --- a/scripts/exgdas_enkf_ecen.sh +++ b/scripts/exgdas_enkf_ecen.sh @@ -113,44 +113,24 @@ for imem in $(seq 1 ${NMEM_ENS}); do MEMDIR=${gmemchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -x \ COMIN_ATMOS_HISTORY_MEM_PREV:COM_ATMOS_HISTORY_TMPL - ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX_ENS}atmf00${FHR}${ENKF_SUFFIX}.nc" "./atmges_${memchar}" + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX_ENS}atm.f00${FHR}${ENKF_SUFFIX}.nc" "./atmges_${memchar}" if [[ ${DO_CALC_INCREMENT} = "YES" ]]; then - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}atmanl.nc" "./atmanl_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}atma00${FHR}.nc" "./atmanl_${memchar}" - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}analysis.atm.a00${FHR}.nc" "./atmanl_${memchar}" fi mkdir -p "${COMOUT_ATMOS_ANALYSIS_MEM}" - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}atminc.nc" "./atminc_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}atmi00${FHR}.nc" "./atminc_${memchar}" - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}increment.atm.i00${FHR}.nc" "./atminc_${memchar}" if [[ ${RECENTER_ENKF} = "YES" ]]; then if [[ ${DO_CALC_INCREMENT} = "YES" ]]; then - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}ratmanl.nc" "./ratmanl_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}ratma00${FHR}.nc" "./ratmanl_${memchar}" - fi - else - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}ratminc.nc" "./ratminc_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}ratmi00${FHR}.nc" "./ratminc_${memchar}" - fi - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}recentered_analysis.atm.a006.nc" "./ratmanl_${memchar}" + else + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}recentered_increment.atm.i00${FHR}.nc" "./ratminc_${memchar}" + fi fi done if [[ ${DO_CALC_INCREMENT} = "YES" ]]; then # Link ensemble mean analysis - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}atmanl.ensmean.nc" "./atmanl_ensmean" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}atma00${FHR}.ensmean.nc" "./atmanl_ensmean" - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}ensmean_analysis.atm.a00${FHR}.nc" "./atmanl_ensmean" # Compute ensemble mean analysis DATAPATH="./" @@ -169,11 +149,7 @@ if [[ ${DO_CALC_INCREMENT} = "YES" ]]; then fi else # Link ensemble mean increment - if [[ ${FHR} -eq 6 ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}atminc.ensmean.nc" "./atminc_ensmean" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}atmi00${FHR}.ensmean.nc" "./atminc_ensmean" - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX_ENS}ensmean_increment.atm.i00${FHR}.nc" "./atminc_ensmean" # Compute ensemble mean increment DATAPATH="./" @@ -192,8 +168,8 @@ else fi # If available, link to ensemble mean guess. Otherwise, compute ensemble mean guess - if [[ -s "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX_ENS}atmf00${FHR}.ensmean.nc" ]]; then - ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX_ENS}atmf00${FHR}.ensmean.nc" "./atmges_ensmean" + if [[ -s "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX_ENS}ensmean.atm.f00${FHR}.nc" ]]; then + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX_ENS}ensmean.atm.f00${FHR}.nc" "./atmges_ensmean" else DATAPATH="./" ATMGESNAME="atmges" @@ -235,13 +211,8 @@ fi if [[ ${RECENTER_ENKF} = "YES" ]]; then # GSI EnVar analysis - if [[ ${FHR} -eq 6 ]]; then - ATMANL_GSI="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}atmanl.nc" - ATMANL_GSI_ENSRES="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}atmanl.ensres.nc" - else - ATMANL_GSI="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}atma00${FHR}.nc" - ATMANL_GSI_ENSRES="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}atma00${FHR}.ensres.nc" - fi + ATMANL_GSI="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}analysis.atm.a00${FHR}.nc" + ATMANL_GSI_ENSRES="${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}ensres_analysis.atm.a00${FHR}.nc" # if we already have a ensemble resolution GSI analysis then just link to it if [[ -f ${ATMANL_GSI_ENSRES} ]]; then diff --git a/scripts/exgdas_enkf_post.sh b/scripts/exgdas_enkf_post.sh index 5d931217d27..2c75d25619c 100755 --- a/scripts/exgdas_enkf_post.sh +++ b/scripts/exgdas_enkf_post.sh @@ -68,8 +68,8 @@ for imem in $(seq 1 ${NMEM_ENS}); do for fhr in $(seq ${FHMIN} ${FHOUT} ${FHMAX}); do fhrchar=$(printf %03i "${fhr}") - ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}sfcf${fhrchar}.nc" "sfcf${fhrchar}_${memchar}" - ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}atmf${fhrchar}.nc" "atmf${fhrchar}_${memchar}" + ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}sfc.f${fhrchar}.nc" "sfcf${fhrchar}_${memchar}" + ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}atm.f${fhrchar}.nc" "atmf${fhrchar}_${memchar}" done done @@ -82,18 +82,18 @@ fi for fhr in $(seq ${FHMIN} ${FHOUT} ${FHMAX}); do fhrchar=$(printf %03i "${fhr}") - ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}sfcf${fhrchar}.ensmean.nc" "sfcf${fhrchar}.ensmean" - ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}atmf${fhrchar}.ensmean.nc" "atmf${fhrchar}.ensmean" + ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}ensmean.sfc.f${fhrchar}.nc" "sfcf${fhrchar}.ensmean" + ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}ensmean.atm.f${fhrchar}.nc" "atmf${fhrchar}.ensmean" if [[ "${SMOOTH_ENKF}" == "YES" ]]; then for imem in $(seq 1 ${NMEM_ENS}); do memchar="mem"$(printf %03i "${imem}") MEMDIR="${memchar}" YMD=${PDY} HH=${cyc} declare_from_tmpl -x \ COMIN_ATMOS_HISTORY:COM_ATMOS_HISTORY_TMPL - ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}atmf${fhrchar}${ENKF_SUFFIX}.nc" "atmf${fhrchar}${ENKF_SUFFIX}_${memchar}" + ${NLN} "${COMIN_ATMOS_HISTORY}/${PREFIX}atm.f${fhrchar}${ENKF_SUFFIX}.nc" "atmf${fhrchar}${ENKF_SUFFIX}_${memchar}" done fi if [[ "${ENKF_SPREAD}" == "YES" ]]; then - ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}atmf${fhrchar}.ensspread.nc" "atmf${fhrchar}.ensspread" + ${NLN} "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}ensspread.atm.f${fhrchar}.nc" "atmf${fhrchar}.ensspread" fi done @@ -157,7 +157,7 @@ if [[ "${SENDDBN}" == "YES" ]]; then fhrchar=$(printf "%03i" "${fhr}") if [[ $(expr ${fhr} % 3) -eq 0 ]]; then if [[ -s "./sfcf${fhrchar}.ensmean" ]]; then - "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_ENKF" "${job}" "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}sfcf${fhrchar}.ensmean.nc" + "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_ENKF" "${job}" "${COMOUT_ATMOS_HISTORY_STAT}/${PREFIX}ensmean.sfc.f${fhrchar}.nc" fi fi done diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index e3b7c5ec6f2..5dff02f56b8 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -125,7 +125,7 @@ else fi if [[ "${DONST}" == "YES" ]]; then - export NST_FILE=${NST_FILE:-${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}dtfanl.nc} + export NST_FILE=${NST_FILE:-${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}analysis.dtf.a006.nc} else export NST_FILE="NULL" fi @@ -157,7 +157,7 @@ export MAX_TASKS_CY=$NMEM_ENS if [[ "$DOIAU" == "YES" ]]; then # Update surface restarts at beginning of window when IAU is ON - # For now assume/hold dtfanl.nc is valid at beginning of window. + # For now assume/hold analysis.dtf.nc is valid at beginning of window. for n in $(seq 1 $ntiles); do @@ -202,7 +202,7 @@ if [[ "$DOIAU" == "YES" ]]; then cpreq "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}" if [[ "${DO_GSISOILDA}" == "YES" ]]; then - cpreq "${COMIN_ATMOS_ANALYSIS_MEM}/sfci00${LFHR}.tile${n}.nc" \ + cpreq "${COMIN_ATMOS_ANALYSIS_MEM}/increment.sfc.i00${LFHR}.tile${n}.nc" \ "${DATA}/soil_xainc.${cmem}" fi @@ -277,7 +277,7 @@ if [[ "${DOSFCANL_ENKF}" == "YES" ]]; then cpreq "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}" if [[ "${DO_GSISOILDA}" == "YES" ]]; then - cpreq "${COMIN_ATMOS_ANALYSIS_MEM}/sfci00${LFHR}.tile${n}.nc" \ + cpreq "${COMIN_ATMOS_ANALYSIS_MEM}/${APREFIX}increment.sfc.i00${LFHR}.tile${n}.nc" \ "${DATA}/soil_xainc.${cmem}" fi done diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index 8eb70d8a257..a856e9c8f66 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -41,11 +41,11 @@ APREFIX=${APREFIX:-""} SMOOTH_ENKF=${SMOOTH_ENKF:-"YES"} -GBIASe=${GBIASe:-${APREFIX}abias_int.ensmean} -CNVSTAT=${CNVSTAT:-${APREFIX}cnvstat} -OZNSTAT=${OZNSTAT:-${APREFIX}oznstat} -RADSTAT=${RADSTAT:-${APREFIX}radstat} -ENKFSTAT=${ENKFSTAT:-${APREFIX}enkfstat} +GBIASe=${GBIASe:-${APREFIX}abias_int.ensmean.txt} +CNVSTAT=${CNVSTAT:-${APREFIX}cnvstat.tar} +OZNSTAT=${OZNSTAT:-${APREFIX}oznstat.tar} +RADSTAT=${RADSTAT:-${APREFIX}radstat.tar} +ENKFSTAT=${ENKFSTAT:-${APREFIX}enkfstat.txt} # Namelist parameters USE_CORRELATED_OBERRS=${USE_CORRELATED_OBERRS:-"NO"} @@ -90,7 +90,7 @@ hofx_2m_sfcfile=${hofx_2m_sfcfile:-".false."} ################################################################################ -ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf006.ensmean.nc" +ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}ensmean.atm.f006.nc" LONB_ENKF=${LONB_ENKF:-$(${NCLEN} "${ATMGES_ENSMEAN}" grid_xt)} # get LONB_ENKF LATB_ENKF=${LATB_ENKF:-$(${NCLEN} "${ATMGES_ENSMEAN}" grid_yt)} # get LATB_ENFK LEVS_ENKF=${LEVS_ENKF:-$(${NCLEN} "${ATMGES_ENSMEAN}" pfull)} # get LEVS_ENFK @@ -143,7 +143,7 @@ COMOUT_ATMOS_ANALYSIS=\$2 flist="${CNVSTAT} ${OZNSTAT} ${RADSTAT}" for ftype in \$flist; do if [[ "\${memchar}" == "ensmean" ]]; then - fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype}.ensmean + fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype%.tar}.ensmean.tar else fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype} fi @@ -164,7 +164,7 @@ if [[ "${USE_CFP}" == "YES" ]]; then fi else for ftype in ${flist}; do - fname="${COMIN_ATMOS_ANALYSIS_STAT}/${ftype}.ensmean" + fname="${COMIN_ATMOS_ANALYSIS_STAT}/${ftype}.tar" tar -xvf "${fname}" done fi @@ -184,37 +184,27 @@ for imem in $(seq 1 ${NMEM_ENS}); do COMOUT_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL mkdir -p "${COMOUT_ATMOS_ANALYSIS_MEM}" - + for FHR in ${nfhrs}; do - ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atm.f00${FHR}${ENKF_SUFFIX}.nc" \ "sfg_${PDY}${cyc}_fhr0${FHR}_${memchar}" if [[ "${hofx_2m_sfcfile}" == ".true." ]]; then - ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfc.f00${FHR}${ENKF_SUFFIX}.nc" \ "bfg_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi if [[ "${cnvw_option}" == ".true." ]]; then - ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfc.f00${FHR}.nc" \ "sfgsfc_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi - if [[ ${FHR} -eq 6 ]]; then - if [[ "${DO_CALC_INCREMENT}" == "YES" ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmanl.nc" \ - "sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atminc.nc" \ - "incr_${PDY}${cyc}_fhr0${FHR}_${memchar}" - fi + if [[ "${DO_CALC_INCREMENT}" == "YES" ]]; then + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}analysis.atm.a00${FHR}.nc" \ + "sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}" else - if [[ "${DO_CALC_INCREMENT}" == "YES" ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atma00${FHR}.nc" \ - "sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}" - else - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmi00${FHR}.nc" \ - "incr_${PDY}${cyc}_fhr0${FHR}_${memchar}" - fi + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}increment.atm.i00${FHR}.nc" \ + "incr_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi if [[ "${DO_GSISOILDA}" == "YES" ]]; then - ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}increment.sfc.i00${FHR}.nc" \ "sfcincr_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi done @@ -223,16 +213,16 @@ done # Ensemble mean guess for FHR in ${nfhrs}; do - ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf00${FHR}.ensmean.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}ensmean.atm.f00${FHR}.nc" \ "sfg_${PDY}${cyc}_fhr0${FHR}_ensmean" if [[ "${cnvw_option}" == ".true." ]]; then - ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}ensmean.sfc.f00${FHR}.nc" \ "sfgsfc_${PDY}${cyc}_fhr0${FHR}_ensmean" fi if [[ "${DO_GSISOILDA}" == "YES" ]]; then - ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}ensmean.sfc.f00${FHR}.nc" \ "bfg_${PDY}${cyc}_fhr0${FHR}_ensmean" - ${NLN} "${COMIN_ATMOS_ANALYSIS_STAT}/${APREFIX}sfci00${FHR}.nc" \ + ${NLN} "${COMIN_ATMOS_ANALYSIS_STAT}/${APREFIX}increment.sfc.i00${FHR}.nc" \ "sfcincr_${PDY}${cyc}_fhr0${FHR}_ensmean" fi done diff --git a/scripts/exgfs_atmos_awips_20km_1p0deg.sh b/scripts/exgfs_atmos_awips_20km_1p0deg.sh index 902b03010e6..d2bfe23d7eb 100755 --- a/scripts/exgfs_atmos_awips_20km_1p0deg.sh +++ b/scripts/exgfs_atmos_awips_20km_1p0deg.sh @@ -43,7 +43,7 @@ source "${USHgfs}/product_functions.sh" ############################################### sleep_interval=10 max_tries=180 -idxfile="${COMIN_ATMOS_GRIB_0p25}/${RUN}.${cycle}.pgrb2b.0p25.f${fcsthr}.idx" +idxfile="${COMIN_ATMOS_GRIB_0p25}/${RUN}.${cycle}.pres_b.0p25.f${fcsthr}.grib2.idx" if ! wait_for_file "${idxfile}" "${sleep_interval}" "${max_tries}"; then msg="FATAL ERROR: No GFS pgrb2 file after waiting" err_exit "${msg}" @@ -79,8 +79,8 @@ export opt28=' -new_grid_interpolation budget -fi ' # Process GFS GRIB AWIP PRODUCTS IN GRIB2 # ############################################################### -cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2.0p25.f${fcsthr}" "tmpfile2${fcsthr}" -cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthr}" "tmpfile2b${fcsthr}" +cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pres_a.0p25.f${fcsthr}.grib2" "tmpfile2${fcsthr}" +cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pres_b.0p25.f${fcsthr}.grib2" "tmpfile2b${fcsthr}" cat "tmpfile2${fcsthr}" "tmpfile2b${fcsthr}" > "tmpfile${fcsthr}" ${WGRIB2} "tmpfile${fcsthr}" | grep -F -f "${PARMgfs}/product/gfs_awips_parmlist_g2" | \ ${WGRIB2} -i -grib masterfile "tmpfile${fcsthr}" && true diff --git a/scripts/exgfs_atmos_fbwind.sh b/scripts/exgfs_atmos_fbwind.sh index b063ce4b752..8f9bbb8094f 100755 --- a/scripts/exgfs_atmos_fbwind.sh +++ b/scripts/exgfs_atmos_fbwind.sh @@ -5,7 +5,7 @@ # echo "JGFS_BULLS - 24hr GFS processing" # echo "------------------------------------------------" # echo "History: Jul 2004 - First implementation of this new script." -# echo " FBWNDGFS (FB Winds) program for 15 sites outside" +# echo " FBWNDGFS (FB Winds) program for 15 sites outside" # echo " the Hawaiian Islands." # echo " Feb 2006 - L Sager Send bulletins to TOC via NTC. " # echo " Jul 2014 - B Vuong Modified to use GFS master GRIB2" @@ -35,8 +35,8 @@ export pgm=bulls_fbwndgfs source prep_step for fhr3 in 006 012 024; do - cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.${cycle}.pgrb2.0p25.f${fhr3}" "tmp_pgrb2_0p25${fhr3}" - cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.${cycle}.pgrb2b.0p25.f${fhr3}" "tmp_pgrb2b_0p25${fhr3}" + cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.${cycle}.pres_a.0p25.f${fhr3}.grib2" "tmp_pgrb2_0p25${fhr3}" + cpreq "${COMIN_ATMOS_GRIB_0p25}/gfs.${cycle}.pres_b.0p25.f${fhr3}.grib2" "tmp_pgrb2b_0p25${fhr3}" cat "tmp_pgrb2_0p25${fhr3}" "tmp_pgrb2b_0p25${fhr3}" > "tmp0p25filef${fhr3}" # shellcheck disable=SC2312 ${WGRIB2} "tmp0p25filef${fhr3}" | grep -F -f "${PARMgfs}/product/gfs_fbwnd_parmlist_g2" | \ diff --git a/scripts/exgfs_atmos_grib2_special_npoess.sh b/scripts/exgfs_atmos_grib2_special_npoess.sh index ad94dbbf643..3c2dae8e8c1 100755 --- a/scripts/exgfs_atmos_grib2_special_npoess.sh +++ b/scripts/exgfs_atmos_grib2_special_npoess.sh @@ -18,12 +18,12 @@ cd "${DATA}" || exit 2 # FH is the current forecast hour. # SLEEP_TIME is the number of seconds to sleep before exiting with error. # SLEEP_INT is the number of seconds to sleep between restrt file checks. -# restart_file is the name of the file to key off of to kick off pgrb +# restart_file is the name of the file to key off of to kick off pgrb # generation. ############################################################ ############################################################ -# NO processing Analysis special Files +# NO processing Analysis special Files ############################################################ # Set type of Interpolation for WGRIB2 @@ -86,7 +86,7 @@ if (( FHOUR > FHMAX_GFS )); then fi ############################################################ -# Loop Through the Post Forecast Files +# Loop Through the Post Forecast Files ############################################################ for (( fhr=SHOUR; fhr <= FHOUR; fhr = fhr + FHINC )); do @@ -97,7 +97,7 @@ for (( fhr=SHOUR; fhr <= FHOUR; fhr = fhr + FHINC )); do # existence of the restart files ############################### export pgm="postcheck" - grib_file="${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pgrb2b.0p50.f${fhr3}.idx" + grib_file="${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pres_b.0p50.f${fhr3}.grib2.idx" if ! wait_for_file "${grib_file}" "${SLEEP_INT}" "${SLEEP_LOOP_MAX}"; then export err=9 err_exit "0p50 grib file not available after max sleep time" @@ -107,8 +107,8 @@ for (( fhr=SHOUR; fhr <= FHOUR; fhr = fhr + FHINC )); do # Process Global NPOESS 0.50 GFS GRID PRODUCTS IN GRIB2 F000 - F024 # ###################################################################### paramlist="${PARMgfs}/product/global_npoess_paramlist_g2" - cpreq "${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pgrb2.0p50.f${fhr3}" tmpfile2 - cpreq "${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pgrb2b.0p50.f${fhr3}" tmpfile2b + cpreq "${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pres_a.0p50.f${fhr3}.grib2" tmpfile2 + cpreq "${COMIN_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pres_b.0p50.f${fhr3}.grib2" tmpfile2b cat tmpfile2 tmpfile2b > tmpfile # shellcheck disable=SC2312 ${WGRIB2} tmpfile | grep -F -f "${paramlist}" | ${WGRIB2} -i -grib pgb2file tmpfile && true @@ -131,7 +131,7 @@ for (( fhr=SHOUR; fhr <= FHOUR; fhr = fhr + FHINC )); do done ################################################################ -# Specify Forecast Hour Range F000 - F180 for GOESSIMPGRB files +# Specify Forecast Hour Range F000 - F180 for GOESSIMPGRB files ################################################################ export SHOUR=${FHMIN_GFS} export FHOUR=${FHMAX_GOES} @@ -146,18 +146,18 @@ for (( fhr=SHOUR; fhr <= FHOUR; fhr = fhr + FHINC )); do fhr3=$(printf "%03d" "${fhr}") ############################### - # Start Looping for the + # Start Looping for the # existence of the restart files ############################### export pgm="postcheck" # grib_file="${COMIN_ATMOS_MASTER}/${RUN}.t${cyc}z.goesmasterf${fhr3}.grb2" - grib_file="${COMIN_ATMOS_MASTER}/${RUN}.t${cyc}z.special.grb2f${fhr3}" + grib_file="${COMIN_ATMOS_MASTER}/${RUN}.t${cyc}z.master-goes.f${fhr3}.grib2" if ! wait_for_file "${grib_file}" "${SLEEP_INT}" "${SLEEP_LOOP_MAX}"; then export err=9 err_exit "GOES master grib file ${grib_file} not available after max sleep time" fi ############################### - # Put restart files into /nwges + # Put restart files into /nwges # for backup to start Model Fcst ############################### cpreq "${grib_file}" masterfile diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh index c7fe96a4f97..f3d288bdd09 100755 --- a/scripts/exgfs_atmos_nawips.sh +++ b/scripts/exgfs_atmos_nawips.sh @@ -70,8 +70,8 @@ case ${grid} in esac source_var="COMIN_ATMOS_GRIB_${grid_in}" -export GRIBIN="${!source_var}/${RUN}.${cycle}.pgrb2.${grid_in}.f${fhr3}" -GRIBIN_chk="${!source_var}/${RUN}.${cycle}.pgrb2.${grid_in}.f${fhr3}.idx" +export GRIBIN="${!source_var}/${RUN}.${cycle}.pres_a.${grid_in}.f${fhr3}.grib2" +GRIBIN_chk="${!source_var}/${RUN}.${cycle}.pres_a.${grid_in}.f${fhr3}.grib2.idx" if ! wait_for_file "${GRIBIN_chk}" "${sleep_interval}" "${max_tries}"; then export err=7 @@ -98,7 +98,7 @@ startmsg ${NAGRIB} << EOF GBFILE = grib${fhr3} -INDXFL = +INDXFL = GDOUTF = ${GEMGRD} PROJ = ${proj} GRDAREA = ${grdarea} @@ -108,7 +108,7 @@ CPYFIL = ${cpyfil} GAREA = ${garea} OUTPUT = ${output} GBTBLS = ${gbtbls} -GBDIAG = +GBDIAG = PDSEXT = ${pdsext} l r diff --git a/scripts/exgfs_atmos_postsnd.sh b/scripts/exgfs_atmos_postsnd.sh index 7eadcef6290..a366b1fad50 100755 --- a/scripts/exgfs_atmos_postsnd.sh +++ b/scripts/exgfs_atmos_postsnd.sh @@ -5,25 +5,25 @@ # Script Description: Generate GFS BUFR sounding files # Script History Log: # 1) 2003-03-25 Hualu Pan First Implementation -# 2) 2010-05-25 V. Krishna Kumar Modified for the GFS +# 2) 2010-05-25 V. Krishna Kumar Modified for the GFS # resolution upgrade -# 3) 2014-08-01 D. Carlis Updated to vertical structure -# and T1534 Resolution +# 3) 2014-08-01 D. Carlis Updated to vertical structure +# and T1534 Resolution # 4) 2016-11-01 H. Chuang Update to read new model nems output # 5) 2017-02-21 Guang Ping Lou setup mpmd to speedup the run # and 1 & 3 hourly output # 6) 2018-03-22 Guang Ping Lou Take FV3GFS configuration -# parameters as input; make it work for +# parameters as input; make it work for # both FV3GFS and GFS # 7) 2018-07-18 Guang Ping Lou Generalize this version to other platforms # 8) 2019-10-18 Guang Ping Lou Transition to reading in NetCDF model data # 9) 2019-12-18 Guang Ping Lou generalizing to reading in NetCDF or nemsio # 10) 2024-08-08 Bo Cui Update to handle one forecast at a time -# For GFSv17 bufr, total number of forecast hours is 141(num_hours=141) +# For GFSv17 bufr, total number of forecast hours is 141(num_hours=141) # it requires 7 nodes & allocate 21 processes per node(num_ppn=21) ################################################################ -runscript=${USHgfs}/gfs_bufr.sh +runscript=${USHgfs}/gfs_bufr.sh cd "${DATA}" || exit 2 @@ -46,7 +46,7 @@ export NEND1=${FHMAX_HF_GFS:-120} export NINT3=${FHOUT_GFS:-3} GETDIM="${USHgfs}/getncdimlen" -LEVS=$(${GETDIM} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atmf000.${atmfm}" pfull) +LEVS=$(${GETDIM} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.f000.${atmfm}" pfull) declare -x LEVS # Initialize an empty list to store the hours @@ -86,7 +86,7 @@ for fhr in "${hour_list[@]}"; do if [[ $((10#${fhr})) -gt $((10#${NEND1})) ]]; then export FINT=${NINT3} fi - if [[ $((10#${fhr})) -eq 0 ]]; then + if [[ $((10#${fhr})) -eq 0 ]]; then export F00FLAG="YES" else export F00FLAG="NO" @@ -103,7 +103,7 @@ for fhr in "${hour_list[@]}"; do fi # Format fhr_p with leading zeros - fhr_p="$(printf "%03d" "$fhr_p")" + fhr_p="$(printf "%03d" "$fhr_p")" filename="${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.logf${fhr}.${logfm}" if [[ -z ${filename} ]]; then @@ -113,7 +113,7 @@ for fhr in "${hour_list[@]}"; do fi done -# Run with MPMD +# Run with MPMD "${USHgfs}/run_mpmd.sh" "${DATA}/poescript_bufr" && true export err=$? if [[ ${err} -ne 0 ]]; then @@ -135,7 +135,7 @@ done # start to generate bufr products at fhr=${ENDHOUR} export MAKEBUFR=YES -export fhr="$(printf "%03d" "$ENDHOUR")" +export fhr="$(printf "%03d" "$ENDHOUR")" export FINT=${NINT1} ## 1-hourly output before $NEND1, 3-hourly output after if [[ $((10#${fhr})) -gt $((10#${NEND1})) ]]; then @@ -146,7 +146,7 @@ if [[ $((10#${fhr})) -eq 0 ]]; then else export F00FLAG="NO" fi -${runscript} "${fhr}" "${fhr_p}" "${FINT}" "${F00FLAG}" "${DATA}" +${runscript} "${fhr}" "${fhr_p}" "${FINT}" "${F00FLAG}" "${DATA}" ############################################################## # Tar and gzip the individual bufr files and send them to /com diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index 196325e6ebd..18d689aa079 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -59,7 +59,7 @@ CRIS_CADS=${CRIS_CADS:-".false."} netcdf_diag=${netcdf_diag:-".true."} binary_diag=${binary_diag:-".false."} lobsdiag_forenkf=${lobsdiag_forenkf:-".false."} - + # IAU DOIAU=${DOIAU:-"NO"} export IAUFHRS=${IAUFHRS:-"6,"} @@ -113,7 +113,7 @@ ESIASI=${ESIASI:-${COMIN_OBS}/${OPREFIX}esiasi.tm00.bufr_d${OSUFFIX}} IASIDB=${IASIDB:-${COMIN_OBS}/${OPREFIX}iasidb.tm00.bufr_d${OSUFFIX}} AMSREBF=${AMSREBF:-${COMIN_OBS}/${OPREFIX}amsre.tm00.bufr_d${OSUFFIX}} AMSR2BF=${AMSR2BF:-${COMIN_OBS}/${OPREFIX}amsr2.tm00.bufr_d${OSUFFIX}} -GMI1CRBF=${GMI1CRBF:-${COMIN_OBS}/${OPREFIX}gmi1cr.tm00.bufr_d${OSUFFIX}} +GMI1CRBF=${GMI1CRBF:-${COMIN_OBS}/${OPREFIX}gmi1cr.tm00.bufr_d${OSUFFIX}} SAPHIRBF=${SAPHIRBF:-${COMIN_OBS}/${OPREFIX}saphir.tm00.bufr_d${OSUFFIX}} SEVIRIBF=${SEVIRIBF:-${COMIN_OBS}/${OPREFIX}sevcsr.tm00.bufr_d${OSUFFIX}} AHIBF=${AHIBF:-${COMIN_OBS}/${OPREFIX}ahicsr.tm00.bufr_d${OSUFFIX}} @@ -149,43 +149,43 @@ GSBBF=${GSBBF:-${COMIN_OBS}/${OPREFIX}gsbprf.tm00.bufr_d${OSUFFIX}} # Guess files GPREFIX=${GPREFIX:-""} -GSUFFIX=${GSUFFIX:-".nc"} -SFCG03=${SFCG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf003${GSUFFIX}} -SFCG04=${SFCG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf004${GSUFFIX}} -SFCG05=${SFCG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf005${GSUFFIX}} -SFCGES=${SFCGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf006${GSUFFIX}} -SFCG07=${SFCG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf007${GSUFFIX}} -SFCG08=${SFCG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf008${GSUFFIX}} -SFCG09=${SFCG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}sfcf009${GSUFFIX}} -ATMG03=${ATMG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf003${GSUFFIX}} -ATMG04=${ATMG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf004${GSUFFIX}} -ATMG05=${ATMG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf005${GSUFFIX}} -ATMGES=${ATMGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006${GSUFFIX}} -ATMG07=${ATMG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf007${GSUFFIX}} -ATMG08=${ATMG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf008${GSUFFIX}} -ATMG09=${ATMG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf009${GSUFFIX}} -GBIAS=${GBIAS:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias} -GBIASPC=${GBIASPC:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_pc} -GBIASAIR=${GBIASAIR:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_air} -GRADSTAT=${GRADSTAT:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}radstat} +GSUFFIX=${GSUFFIX:-""} +SFCG03=${SFCG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f003.nc} +SFCG04=${SFCG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f004.nc} +SFCG05=${SFCG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f005.nc} +SFCGES=${SFCGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f006.nc} +SFCG07=${SFCG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f007.nc} +SFCG08=${SFCG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f008.nc} +SFCG09=${SFCG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}sfc.f009.nc} +ATMG03=${ATMG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f003.nc} +ATMG04=${ATMG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f004.nc} +ATMG05=${ATMG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f005.nc} +ATMGES=${ATMGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f006.nc} +ATMG07=${ATMG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f007.nc} +ATMG08=${ATMG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f008.nc} +ATMG09=${ATMG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}${GSUFFIX}atm.f009.nc} +GBIAS=${GBIAS:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias.txt} +GBIASPC=${GBIASPC:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_pc.txt} +GBIASAIR=${GBIASAIR:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_air.txt} +GRADSTAT=${GRADSTAT:-${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}radstat.tar} # Analysis files export APREFIX=${APREFIX:-""} -SFCANL=${SFCANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}sfcanl.nc} -DTFANL=${DTFANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}dtfanl.nc} -ATMANL=${ATMANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmanl.nc} -ABIAS=${ABIAS:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias} -ABIASPC=${ABIASPC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc} -ABIASAIR=${ABIASAIR:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air} -ABIASe=${ABIASe:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int} -RADSTAT=${RADSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat} -GSISTAT=${GSISTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat} +SFCANL=${SFCANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.sfc.a006.nc} +DTFANL=${DTFANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.dtf.a006.nc} +ATMANL=${ATMANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a006.nc} +ABIAS=${ABIAS:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.txt} +ABIASPC=${ABIASPC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.txt} +ABIASAIR=${ABIASAIR:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.txt} +ABIASe=${ABIASe:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.txt} +RADSTAT=${RADSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.tar} +GSISTAT=${GSISTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.txt} PCPSTAT=${PCPSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}pcpstat} -CNVSTAT=${CNVSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat} -OZNSTAT=${OZNSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat} +CNVSTAT=${CNVSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.tar} +OZNSTAT=${OZNSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.tar} # Increment files -ATMINC=${ATMINC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atminc.nc} +ATMINC=${ATMINC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i006.nc} # Obs diag RUN_SELECT=${RUN_SELECT:-"NO"} @@ -241,8 +241,8 @@ fi # Get header information from Ensemble Guess files if [[ ${DOHYBVAR} == "YES" ]]; then - SFCGES_ENSMEAN=${SFCGES_ENSMEAN:-${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}sfcf006.ensmean.nc} - export ATMGES_ENSMEAN=${ATMGES_ENSMEAN:-${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}atmf006.ensmean.nc} + SFCGES_ENSMEAN=${SFCGES_ENSMEAN:-${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}ensmean.sfc.f006.nc} + export ATMGES_ENSMEAN=${ATMGES_ENSMEAN:-${COMIN_ATMOS_HISTORY_ENS_PREV}/${GPREFIX_ENS}ensmean.atm.f006.nc} LONB_ENKF=${LONB_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} grid_xt)} # get LONB_ENKF LATB_ENKF=${LATB_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} grid_yt)} # get LATB_ENFK LEVS_ENKF=${LEVS_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} pfull)} # get LATB_ENFK @@ -339,18 +339,18 @@ fi # Set 4D-EnVar specific variables if [[ ${DOHYBVAR} == "YES" && ${l4densvar} == ".true." && ${lwrite4danl} == ".true." ]]; then - ATMA03=${ATMA03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma003.nc} - ATMI03=${ATMI03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi003.nc} - ATMA04=${ATMA04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma004.nc} - ATMI04=${ATMI04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi004.nc} - ATMA05=${ATMA05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma005.nc} - ATMI05=${ATMI05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi005.nc} - ATMA07=${ATMA07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma007.nc} - ATMI07=${ATMI07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi007.nc} - ATMA08=${ATMA08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma008.nc} - ATMI08=${ATMI08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi008.nc} - ATMA09=${ATMA09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma009.nc} - ATMI09=${ATMI09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi009.nc} + ATMA03=${ATMA03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a003.nc} + ATMI03=${ATMI03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i003.nc} + ATMA04=${ATMA04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a004.nc} + ATMI04=${ATMI04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i004.nc} + ATMA05=${ATMA05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a005.nc} + ATMI05=${ATMI05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i005.nc} + ATMA07=${ATMA07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a007.nc} + ATMI07=${ATMI07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i007.nc} + ATMA08=${ATMA08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a008.nc} + ATMI08=${ATMI08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i008.nc} + ATMA09=${ATMA09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a009.nc} + ATMI09=${ATMI09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i009.nc} fi ############################################################## @@ -549,7 +549,7 @@ if [[ "${DOHYBVAR}" == "YES" ]]; then # Link ensemble members mkdir -p ensemble_data - ENKF_SUFFIX="s" + ENKF_SUFFIX="smooth." if [[ "${SMOOTH_ENKF}" == "NO" ]]; then ENKF_SUFFIX="" fi @@ -566,9 +566,9 @@ if [[ "${DOHYBVAR}" == "YES" ]]; then COMIN_ATMOS_HISTORY:COM_ATMOS_HISTORY_TMPL for fhr in ${fhrs}; do - ${NLN} ${COMIN_ATMOS_HISTORY}/${GPREFIX_ENS}atmf0${fhr}${ENKF_SUFFIX}.nc ./ensemble_data/sigf${fhr}_ens_${memchar} + ${NLN} ${COMIN_ATMOS_HISTORY}/${GPREFIX_ENS}${ENKF_SUFFIX}atm.f0${fhr}.nc ./ensemble_data/sigf${fhr}_ens_${memchar} if [[ ${cnvw_option} == ".true." ]]; then - ${NLN} ${COMIN_ATMOS_HISTORY}/${GPREFIX_ENS}sfcf0${fhr}.nc ./ensemble_data/sfcf${fhr}_ens_${memchar} + ${NLN} ${COMIN_ATMOS_HISTORY}/${GPREFIX_ENS}sfc.f0${fhr}.nc ./ensemble_data/sfcf${fhr}_ens_${memchar} fi done done @@ -1034,7 +1034,7 @@ cd "${pwd}" || exit 1 if [[ ${SENDECF} == "YES" && "${RUN}" != "enkf" ]]; then ecflow_client --event release_fcst fi -echo "${rCDUMP} ${PDY}${cyc} atminc done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}loginc.txt" +echo "${rCDUMP} ${PDY}${cyc} atminc done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.done.txt" ################################################################################ diff --git a/scripts/exglobal_atmos_analysis_calc.sh b/scripts/exglobal_atmos_analysis_calc.sh index cb58a4eff89..0a99d5f968a 100755 --- a/scripts/exglobal_atmos_analysis_calc.sh +++ b/scripts/exglobal_atmos_analysis_calc.sh @@ -62,22 +62,22 @@ APRUN_GAUSFCANL=${APRUN_GAUSFCANL:-${APRUN:-""}} # Guess files GPREFIX=${GPREFIX:-""} -ATMG03=${ATMG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf003.nc} -ATMG04=${ATMG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf004.nc} -ATMG05=${ATMG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf005.nc} -ATMGES=${ATMGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.nc} -ATMG07=${ATMG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf007.nc} -ATMG08=${ATMG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf008.nc} -ATMG09=${ATMG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf009.nc} +ATMG03=${ATMG03:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f003.nc} +ATMG04=${ATMG04:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f004.nc} +ATMG05=${ATMG05:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f005.nc} +ATMGES=${ATMGES:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f006.nc} +ATMG07=${ATMG07:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f007.nc} +ATMG08=${ATMG08:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f008.nc} +ATMG09=${ATMG09:-${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atm.f009.nc} # Analysis files export APREFIX=${APREFIX:-""} -SFCANL=${SFCANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}sfcanl.nc} -DTFANL=${DTFANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}dtfanl.nc} -ATMANL=${ATMANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmanl.nc} +SFCANL=${SFCANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.sfc.a006.nc} +DTFANL=${DTFANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.dtf.a006.nc} +ATMANL=${ATMANL:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a006.nc} # Increment files -ATMINC=${ATMINC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atminc.nc} +ATMINC=${ATMINC:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i006.nc} # Set script / GSI control parameters DOHYBVAR=${DOHYBVAR:-"NO"} @@ -94,18 +94,18 @@ fi # Set 4D-EnVar specific variables if [[ "${DOHYBVAR}" == "YES" && "${l4densvar}" == ".true." && "${lwrite4danl}" == ".true." ]]; then - ATMA03=${ATMA03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma003.nc} - ATMI03=${ATMI03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi003.nc} - ATMA04=${ATMA04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma004.nc} - ATMI04=${ATMI04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi004.nc} - ATMA05=${ATMA05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma005.nc} - ATMI05=${ATMI05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi005.nc} - ATMA07=${ATMA07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma007.nc} - ATMI07=${ATMI07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi007.nc} - ATMA08=${ATMA08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma008.nc} - ATMI08=${ATMI08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi008.nc} - ATMA09=${ATMA09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atma009.nc} - ATMI09=${ATMI09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}atmi009.nc} + ATMA03=${ATMA03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a003.nc} + ATMI03=${ATMI03:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i003.nc} + ATMA04=${ATMA04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a004.nc} + ATMI04=${ATMI04:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i004.nc} + ATMA05=${ATMA05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a005.nc} + ATMI05=${ATMI05:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i005.nc} + ATMA07=${ATMA07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a007.nc} + ATMI07=${ATMI07:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i007.nc} + ATMA08=${ATMA08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a008.nc} + ATMI08=${ATMI08:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i008.nc} + ATMA09=${ATMA09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.atm.a009.nc} + ATMI09=${ATMI09:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}increment.atm.i009.nc} fi ################################################################################ @@ -177,7 +177,7 @@ if [[ "${DOGAUSFCANL}" == "YES" ]]; then fi fi -echo "${rCDUMP} ${PDY}${cyc} atmanl and sfcanl done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}loganl.txt" +echo "${rCDUMP} ${PDY}${cyc} atmanl and sfcanl done at $(date)" > "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}done.txt" ################################################################################ # Postprocessing diff --git a/scripts/exglobal_atmos_products.sh b/scripts/exglobal_atmos_products.sh index 0c34247bb3c..2c21d71120b 100755 --- a/scripts/exglobal_atmos_products.sh +++ b/scripts/exglobal_atmos_products.sh @@ -18,7 +18,7 @@ cd "${DATA}" || exit 1 # Determine if supplemental products (PGBS) (1-degree and 1/2-degree) should be generated if [[ ${FORECAST_HOUR} -le 0 ]]; then if [[ ${FORECAST_HOUR} -lt 0 ]]; then - fhr3="anl" + fhr3="analysis" paramlista="${paramlista_anl}" FLXGF="NO" elif [[ ${FORECAST_HOUR} == 0 ]]; then @@ -37,12 +37,12 @@ fi # Section creating pressure grib2 interpolated products # Files needed by ${INTERP_ATMOS_MASTERSH} -MASTER_FILE="${COMIN_ATMOS_MASTER}/${PREFIX}master.grb2${fhr3}" +MASTER_FILE="${COMIN_ATMOS_MASTER}/${PREFIX}master.${fhr3}.grib2" # Get inventory from ${MASTER_FILE} that matches patterns from ${paramlista} # Extract this inventory from ${MASTER_FILE} into a smaller tmpfile or tmpfileb based on paramlista or paramlistb # shellcheck disable=SC2312 -${WGRIB2} "${MASTER_FILE}" | grep -F -f "${paramlista}" | ${WGRIB2} -i -grib "tmpfile_${fhr3}" "${MASTER_FILE}" && true +${WGRIB2} "${MASTER_FILE}" | grep -F -f "${paramlista}" | ${WGRIB2} -i -grib "tmpfilea_${fhr3}" "${MASTER_FILE}" && true export err=$? if [[ ${err} -ne 0 ]]; then err_exit "wgrib2 failed to create intermediate grib2 file from ${MASTER_FILE} using ${paramlista}" @@ -78,7 +78,7 @@ for (( nset=1 ; nset <= downset ; nset++ )); do # Each set represents a group of files if [[ ${nset} == 1 ]]; then - grp="" # TODO: this should be "a" when we eventually rename the pressure grib2 files per EE2 convention + grp="a" elif [[ ${nset} == 2 ]]; then grp="b" fi @@ -163,8 +163,8 @@ for (( nset=1 ; nset <= downset ; nset++ )); do # Move to COM and index the product grib files for grid in "${grids[@]}"; do prod_dir="COMOUT_ATMOS_GRIB_${grid}" - cpfs "pgb2${grp}file_${fhr3}_${grid}" "${!prod_dir}/${PREFIX}pgrb2${grp}.${grid}.${fhr3}" - ${WGRIB2} -s "pgb2${grp}file_${fhr3}_${grid}" > "${!prod_dir}/${PREFIX}pgrb2${grp}.${grid}.${fhr3}.idx" + cpfs "pgb2${grp}file_${fhr3}_${grid}" "${!prod_dir}/${PREFIX}pres_${grp}.${grid}.${fhr3}.grib2" + ${WGRIB2} -s "pgb2${grp}file_${fhr3}_${grid}" > "${!prod_dir}/${PREFIX}pres_${grp}.${grid}.${fhr3}.grib2.idx" done echo "Finished processing nset = ${nset}" @@ -174,12 +174,12 @@ done # for (( nset=1 ; nset <= downset ; nset++ )) #--------------------------------------------------------------- # Create the index file for the sflux master, if it exists. -FLUX_FILE="${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2" +FLUX_FILE="${COMIN_ATMOS_MASTER}/${PREFIX}sflux.${fhr3}.grib2" if [[ -s "${FLUX_FILE}" ]]; then ${WGRIB2} -s "${FLUX_FILE}" > "${FLUX_FILE}.idx" fi -# Section creating slfux grib2 interpolated products +# Section creating sflux grib2 interpolated products # Create 1-degree sflux grib2 output # move to COM and index it if [[ "${FLXGF:-}" == "YES" ]]; then @@ -198,17 +198,17 @@ if [[ "${FLXGF:-}" == "YES" ]]; then IFS=':' read -ra grids <<< "${grid_string}" for grid in "${grids[@]}"; do prod_dir="COMOUT_ATMOS_GRIB_${grid}" - cpfs "sflux_${fhr3}_${grid}" "${!prod_dir}/${PREFIX}flux.${grid}.${fhr3}" - ${WGRIB2} -s "sflux_${fhr3}_${grid}" > "${!prod_dir}/${PREFIX}flux.${grid}.${fhr3}.idx" + cpfs "sflux_${fhr3}_${grid}" "${!prod_dir}/${PREFIX}flux.${grid}.${fhr3}.grib2" + ${WGRIB2} -s "sflux_${fhr3}_${grid}" > "${!prod_dir}/${PREFIX}flux.${grid}.${fhr3}.grib2.idx" done fi # Section creating 0.25 degree WGNE products for nset=1, and fhr <= FHMAX_WGNE if [[ "${WGNE:-}" == "YES" ]]; then - grp="" # TODO: this should be "a" when we eventually rename the pressure grib2 files per EE2 convention + grp="a" if [[ ${FORECAST_HOUR} -gt 0 && ${FORECAST_HOUR} -le ${FHMAX_WGNE} ]]; then # TODO: 597 is the message number for APCP in GFSv16. GFSv17 may change this as more messages are added. This can be controlled via config.atmos_products - ${WGRIB2} "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pgrb2${grp}.0p25.${fhr3}" -d "${APCP_MSG:-597}" -grib "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}" + ${WGRIB2} "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pres_${grp}.0p25.${fhr3}.grib2" -d "${APCP_MSG:-597}" -grib "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}.grib2" fi fi @@ -217,68 +217,68 @@ fi # Start sending DBN alerts # Everything below this line is for sending files to DBN (SENDDBN=YES) if [[ "${SENDDBN:-}" == "YES" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P25" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P25_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P25" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pres_a.0p25.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P25_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pres_a.0p25.${fhr3}.grib2.idx" if [[ "${RUN}" == "gfs" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P25" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P25_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.${fhr3}.idx" - if [[ -s "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.${fhr3}" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P5" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P5_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.${fhr3}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P5" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P5_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P25" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pres_b.0p25.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P25_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}pres_b.0p25.${fhr3}.grib2.idx" + if [[ -s "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pres_a.0p50.${fhr3}.grib2" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P5" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pres_a.0p50.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_0P5_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pres_a.0p50.${fhr3}.grib2.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P5" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pres_b.0p50.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_0P5_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_0p50}/${PREFIX}pres_b.0p50.${fhr3}.grib2.idx" fi - if [[ -s "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_1P0" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_1P0_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_1P0" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_1P0_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.${fhr3}.idx" + if [[ -s "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_1P0" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2_1P0_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_1P0" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_b.1p00.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB2B_1P0_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_b.1p00.${fhr3}.grib2.idx" fi - if [[ "${WGNE:-}" == "YES" && -s "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}" ]] ; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_WGNE" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}" + if [[ "${WGNE:-}" == "YES" && -s "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}.grib2" ]] ; then + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_WGNE" "${job}" "${COMOUT_ATMOS_GRIB_0p25}/${PREFIX}wgne.${fhr3}.grib2" fi fi - if [[ "${fhr3}" == "anl" ]]; then + if [[ "${fhr3}" == "analysis" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_MSC_sfcanl" "${job}" "${COMIN_ATMOS_ANALYSIS}/${PREFIX}sfc${fhr3}.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SA" "${job}" "${COMIN_ATMOS_ANALYSIS}/${PREFIX}atm${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_MSC_sfcanl" "${job}" "${COMIN_ATMOS_ANALYSIS}/${PREFIX}analysis.sfc.a006.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SA" "${job}" "${COMIN_ATMOS_ANALYSIS}/${PREFIX}analysis.atm.a006.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGA_GB2" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGA_GB2_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGA_GB2" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGA_GB2_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2.idx" else # forecast hours f000, f003, f006, etc. if [[ "${RUN}" == "gdas" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB_GB2" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB_GB2_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB_GB2" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_PGB_GB2_WIDX" "${job}" "${COMOUT_ATMOS_GRIB_1p00}/${PREFIX}pres_a.1p00.${fhr3}.grib2.idx" if (( FORECAST_HOUR % 3 == 0 )); then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}atm${fhr3}.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}sfc${fhr3}.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}atm.${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}sfc.${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2.idx" fi elif [[ "${RUN}" == "gfs" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}atm${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}atm.${fhr3}.nc" if [[ ${fhr} -gt 0 && ${fhr} -le 84 || ${fhr} -eq 120 ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}sfc${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COMIN_ATMOS_HISTORY}/${PREFIX}sfc.${fhr3}.nc" fi - if [[ -s "${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrbf${fhr3}.grib2" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2.idx" + if [[ -s "${COMIN_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COMIN_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2.idx" fi elif [[ "${RUN}" == "gcafs" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}atm${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}atm.f${fhr3}.nc" if [[ ${fhr} -gt 0 && ${fhr} -le 84 || ${fhr} == 120 ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}sfc${fhr3}.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_BF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}sfc.f${fhr3}.nc" fi - if [[ -s "${COM_ATMOS_MASTER}/${PREFIX}sfluxgrbf${fhr3}.grib2" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COM_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2" - "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COM_ATMOS_MASTER}/${PREFIX}sfluxgrb${fhr3}.grib2.idx" + if [[ -s "${COM_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2" "${job}" "${COM_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2" + "${DBNROOT}/bin/dbn_alert" MODEL "${RUN^^}_SGB_GB2_WIDX" "${job}" "${COM_ATMOS_MASTER}/${PREFIX}sflux.f${fhr3}.grib2.idx" fi fi diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 92a8efb6fa4..bfe96eae87a 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -111,7 +111,7 @@ done # There is only a single NSST analysis at the middle of the window # For now use/assume it is the same at the beginning of the window if doing IAU if [[ "${DONST}" == "YES" ]]; then - cpreq "${COMIN_ATMOS_ANALYSIS}/${APREFIX}dtfanl.nc" "${DATA}/dtfanl" + cpreq "${COMIN_ATMOS_ANALYSIS}/${APREFIX}analysis.dtf.a006.nc" "${DATA}/dtfanl" export NST_FILE="dtfanl" else export NST_FILE="NULL" @@ -158,7 +158,7 @@ for hr in "${!gcycle_dates[@]}"; do if [[ "${DO_GSISOILDA}" == "YES" ]]; then for (( nn=1; nn <= ntiles; nn++ )); do - cpreq "${COMIN_ATMOS_ANALYSIS}/sfci00${FHR}.tile${nn}.nc" \ + cpreq "${COMIN_ATMOS_ANALYSIS}/increment.sfc.i00${FHR}.tile${nn}.nc" \ "${DATA}/soil_xainc.00${nn}" done fi diff --git a/scripts/exglobal_diag.sh b/scripts/exglobal_diag.sh index af4627ffeb2..6071a57673a 100755 --- a/scripts/exglobal_diag.sh +++ b/scripts/exglobal_diag.sh @@ -36,10 +36,10 @@ binary_diag=${binary_diag:-".false."} # Analysis files export APREFIX=${APREFIX:-""} -RADSTAT=${RADSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat} +RADSTAT=${RADSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.tar} PCPSTAT=${PCPSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}pcpstat} -CNVSTAT=${CNVSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat} -OZNSTAT=${OZNSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat} +CNVSTAT=${CNVSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.tar} +OZNSTAT=${OZNSTAT:-${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.tar} # Remove stat file if file already exists rm -f "${RADSTAT}" "${PCPSTAT}" "${CNVSTAT}" "${OZNSTAT}" diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh index 776018019c3..bbdef1aee20 100755 --- a/scripts/exglobal_forecast.sh +++ b/scripts/exglobal_forecast.sh @@ -31,7 +31,7 @@ ## 1. restart file except sfc_data, $gmemdir/RESTART/$PDY.$cyc.*.nc ## 2. sfcanl_data, $memdir/RESTART/$PDY.$cyc.*.nc ## 3. coupler_res, $gmemdir/RESTART/$PDY.$cyc.coupler.res -## 4. increment file, $memdir/${RUN}.t${cyc}z.atminc.nc +## 4. increment file, $memdir/${RUN}.t${cyc}z.increment.atm.nc ## OR $DATA/INPUT/fv3_increment.nc ## Cold start files: ## 1. initial condition, $memdir/INPUT/*.nc @@ -54,9 +54,9 @@ ## ## Data output (location, name) ## If quilting=true and output grid is gaussian grid: -## 1. atmf data, $memdir/${RUN}.t${cyc}z.atmf${FH3}.$OUTPUT_FILE -## 2. sfcf data, $memdir/${RUN}.t${cyc}z.sfcf${FH3}.$OUTPUT_FILE -## 3. logf data, $memdir/${RUN}.t${cyc}z.logf${FH3}.$OUTPUT_FILE +## 1. atmf data, $memdir/${RUN}.t${cyc}z.atm.f${FH3}.$OUTPUT_FILE +## 2. sfcf data, $memdir/${RUN}.t${cyc}z.sfc.f${FH3}.$OUTPUT_FILE +## 3. logf data, $memdir/${RUN}.t${cyc}z.log.f${FH3}.$OUTPUT_FILE ## If quilting=false and output grid is not gaussian grid: ## 1. NGGPS2D, $memdir/nggps2d.tile${n}.nc ## 2. NGGPS3D, $memdir/nggps3d.tile${n}.nc diff --git a/ush/atmos_ensstat.sh b/ush/atmos_ensstat.sh index b0dd881edde..36218731627 100755 --- a/ush/atmos_ensstat.sh +++ b/ush/atmos_ensstat.sh @@ -12,7 +12,7 @@ input_files=() for ((mem_num = 0; mem_num <= "${NMEM_ENS:-0}"; mem_num++)); do mem=$(printf "%03d" "${mem_num}") MEMDIR="mem${mem}" GRID="${grid}" YMD="${PDY}" HH="${cyc}" declare_from_tmpl COMIN_ATMOS_GRIB:COM_ATMOS_GRIB_GRID_TMPL - memfile_in="${COMIN_ATMOS_GRIB}/${RUN}.t${cyc}z.pgrb2${grid_type}.${grid}.f${fhr3}" + memfile_in="${COMIN_ATMOS_GRIB}/${RUN}.t${cyc}z.pres_a${grid_type}.${grid}.f${fhr3}.grib2" if [[ -r "${memfile_in}.idx" ]]; then ${NLN} "${memfile_in}" "mem${mem}" diff --git a/ush/atmos_extractvars.sh b/ush/atmos_extractvars.sh index e0a410fa78d..f6625b19cc9 100755 --- a/ush/atmos_extractvars.sh +++ b/ush/atmos_extractvars.sh @@ -67,9 +67,9 @@ for outtype in "f2d" "f3d"; do fi com_var="COMIN_ATMOS_GRIB_${outres}" - infile1="${!com_var}/${RUN}.t${cyc}z.pgrb2.${outres}.f${fnh}" - infile2="${!com_var}/${RUN}.t${cyc}z.pgrb2b.${outres}.f${fnh}" - outfile="${outdirpre}/${RUN}.t${cyc}z.pgrb2.${outres}.f${fnh}" + infile1="${!com_var}/${RUN}.t${cyc}z.pres_a.${outres}.f${fnh}.grib2" + infile2="${!com_var}/${RUN}.t${cyc}z.pres_b.${outres}.f${fnh}.grib2" + outfile="${outdirpre}/${RUN}.t${cyc}z.pres_a.${outres}.f${fnh}.grib2" rm -f "${outfile}" #remove outfile if it already exists before extraction for infile in "${infile1}" "${infile2}"; do diff --git a/ush/calcanl_gfs.py b/ush/calcanl_gfs.py index 3eeb077c3ed..d4f4b4c419f 100755 --- a/ush/calcanl_gfs.py +++ b/ush/calcanl_gfs.py @@ -45,8 +45,8 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, gsi_utils.make_dir(CalcAnlDir) gsi_utils.copy_file(ExecAnl, CalcAnlDir + '/calc_anl.x') gsi_utils.link_file(RunDir + '/siginc.nc', CalcAnlDir + '/siginc.nc.06') - gsi_utils.link_file(ComOut + '/' + APrefix + 'atmanl.ensres.nc', CalcAnlDir + '/anl.ensres.06') - gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'atmf006.ensres.nc', CalcAnlDir + '/ges.ensres.06') + gsi_utils.link_file(ComOut + '/' + APrefix + 'ensres_analysis.atm.a006.nc', CalcAnlDir + '/anl.ensres.06') + gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'ensres.atm.f006.nc', CalcAnlDir + '/ges.ensres.06') gsi_utils.link_file(RunDir + '/sigf06', CalcAnlDir + '/ges.06') else: if os.path.isfile('sigi' + format(fh, '02') + '.nc'): @@ -57,7 +57,7 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, gsi_utils.make_dir(CalcAnlDir) if not os.path.exists(CalcAnlDir6): gsi_utils.make_dir(CalcAnlDir6) - gsi_utils.link_file(ComOut + '/' + APrefix + 'atma' + format(fh, '03') + '.nc', + gsi_utils.link_file(ComOut + '/' + APrefix + 'analysis.atm.a' + format(fh, '03') + '.nc', CalcAnlDir6 + '/anl.' + format(fh, '02')) gsi_utils.link_file(RunDir + '/siga' + format(fh, '02'), CalcAnlDir6 + '/anl.' + format(fh, '02')) @@ -77,11 +77,11 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, gsi_utils.make_dir(CalcAnlDir) if not os.path.exists(CalcAnlDir6): gsi_utils.make_dir(CalcAnlDir6) - gsi_utils.link_file(ComOut + '/' + APrefix + 'atma' + format(fh, '03') + '.ensres.nc', + gsi_utils.link_file(ComOut + '/' + APrefix + 'ensres_analysis.atm.a' + format(fh, '03') + '.nc', CalcAnlDir6 + '/anl.ensres.' + format(fh, '02')) gsi_utils.link_file(RunDir + '/sigi' + format(fh, '02') + '.nc', CalcAnlDir6 + '/siginc.nc.' + format(fh, '02')) - gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'atmf' + format(fh, '03') + '.ensres.nc', + gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'ensres.atm.f' + format(fh, '03') + '.nc', CalcAnlDir6 + '/ges.ensres.' + format(fh, '02')) else: @@ -100,8 +100,8 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, gsi_utils.make_dir(CalcAnlDir) gsi_utils.copy_file(ExecAnl, CalcAnlDir + '/calc_anl.x') gsi_utils.link_file(RunDir + '/siginc.nc', CalcAnlDir + '/siginc.nc.06') - gsi_utils.link_file(ComOut + '/' + APrefix + 'atmanl.ensres.nc', CalcAnlDir + '/anl.ensres.06') - gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'atmf006.ensres.nc', CalcAnlDir + '/ges.ensres.06') + gsi_utils.link_file(ComOut + '/' + APrefix + 'ensres_analysis.atm.a006.nc', CalcAnlDir + '/anl.ensres.06') + gsi_utils.link_file(ComIn_Ges + '/' + GPrefix + 'ensres.atm.f006.nc', CalcAnlDir + '/ges.ensres.06') # get dimension information from background and increment files AnlDims = gsi_utils.get_ncdims('siginc.nc') diff --git a/ush/calcinc_gfs.py b/ush/calcinc_gfs.py index 770ed79f3d6..9001ac92863 100755 --- a/ush/calcinc_gfs.py +++ b/ush/calcinc_gfs.py @@ -26,16 +26,16 @@ def calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, IAUHrs, if fh == 6: gsi_utils.link_file('sigf06', 'atmges_mem' + format(nFH, '03')) gsi_utils.link_file('siganl', 'atmanl_mem' + format(nFH, '03')) - gsi_utils.link_file(ComOut + '/' + APrefix + 'atminc.nc', 'atminc_mem' + format(nFH, '03')) + gsi_utils.link_file(ComOut + '/' + APrefix + 'increment.atm.nc', 'atminc_mem' + format(nFH, '03')) else: gsi_utils.link_file('sigf' + format(fh, '02'), 'atmges_mem' + format(nFH, '03')) gsi_utils.link_file('siga' + format(fh, '02'), 'atmanl_mem' + format(nFH, '03')) - gsi_utils.link_file(ComOut + '/' + APrefix + 'atmi' + format(fh, '03') + '.nc', 'atminc_mem' + format(nFH, '03')) + gsi_utils.link_file(ComOut + '/' + APrefix + 'increment.atm.i' + format(fh, '03') + '.nc', 'atminc_mem' + format(nFH, '03')) else: nFH = 1 gsi_utils.link_file('sigf06', 'atmges_mem001') gsi_utils.link_file('siganl', 'atmanl_mem001') - gsi_utils.link_file(ComOut + '/' + APrefix + 'atminc', 'atminc_mem001') + gsi_utils.link_file(ComOut + '/' + APrefix + 'increment.atm', 'atminc_mem001') os.environ['OMP_NUM_THREADS'] = str(NThreads) os.environ['ncmd'] = str(nFH) shutil.copy(Exec, RunDir + '/calc_inc.x') diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 7c5a5b5a701..60da57c26f1 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -128,9 +128,9 @@ FV3_postdet() { if (( MEMBER == 0 )); then inc_files=() else - inc_files=("atminc.nc") + inc_files=("increment.atm.i006.nc") read_increment=".true." - res_latlon_dynamics="atminc.nc" + res_latlon_dynamics="increment.atm.i006.nc" fi increment_file_on_native_grid=".false." local increment_file @@ -192,11 +192,7 @@ EOF IAU_INC_FILES="${IAU_INC_FILES}${delimiter}'${inc_file}'" done else - if (( iaufhr == 6 )); then - inc_file="atminc.nc" - else - inc_file="atmi$(printf %03i "${iaufhr}").nc" - fi + inc_file="increment.atm.i$(printf %03i "${iaufhr}").nc" inc_files+=("${inc_file}") IAU_INC_FILES="${IAU_INC_FILES}${delimiter}'${inc_file}'" fi @@ -211,8 +207,8 @@ EOF increment_file_on_native_grid=".true." res_latlon_dynamics="atminc" else - inc_files=("atminc.nc") - res_latlon_dynamics="atminc.nc" + inc_files=("increment.atm.i006.nc") + res_latlon_dynamics="increment.atm.i006.nc" increment_file_on_native_grid=".false." fi if [[ "${USE_ATM_ENS_PERTURB_FILES:-NO}" == "YES" ]]; then @@ -246,7 +242,7 @@ EOF if [[ ${DO_LAND_IAU} = ".true." ]]; then local TN sfc_increment_file for TN in $(seq 1 "${ntiles}"); do - sfc_increment_file="${COMIN_ATMOS_ANALYSIS}/sfc_inc.tile${TN}.nc" + sfc_increment_file="${COMIN_ATMOS_ANALYSIS}/increment.sfc.i006.tile${TN}.nc" if [[ ! -f "${sfc_increment_file}" ]]; then echo "FATAL ERROR: DO_LAND_IAU=${DO_LAND_IAU}, but missing increment file ${sfc_increment_file}, ABORT!" exit 1 @@ -306,21 +302,21 @@ EOF local hhmmss_substring=${FV3_OUTPUT_FH_hhmmss/" ${FH3}-"*/} # Extract substring that contains all lead times up to the one space before target lead HHH-MM-SS local hhmmss_substring_len=$(( ${#hhmmss_substring} + 1 )) # Get the size of the substring and add 1 to account for space local f_hhmmss=${FV3_OUTPUT_FH_hhmmss:${hhmmss_substring_len}:9} # extract HHH-MM-SS for target lead time - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atmf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/atmf${f_hhmmss}.nc" - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfcf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/sfcf${f_hhmmss}.nc" - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atm.logf${FH3}.txt" "${DATAoutput}/FV3ATM_OUTPUT/log.atm.f${f_hhmmss}" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atm.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/atmf${f_hhmmss}.nc" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfc.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/sfcf${f_hhmmss}.nc" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.log.f${FH3}.txt" "${DATAoutput}/FV3ATM_OUTPUT/log.atm.f${f_hhmmss}" else - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atmf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/atmf${FH3}.nc" - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfcf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/sfcf${FH3}.nc" - ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atm.logf${FH3}.txt" "${DATAoutput}/FV3ATM_OUTPUT/log.atm.f${FH3}" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.atm.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/atmf${FH3}.nc" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfc.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/sfcf${FH3}.nc" + ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.log.f${FH3}.txt" "${DATAoutput}/FV3ATM_OUTPUT/log.atm.f${FH3}" if [[ "${DO_JEDIATMVAR:-}" == "YES" ]]; then ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.cubed_sphere_grid_atmf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_atmf${FH3}.nc" ${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.cubed_sphere_grid_sfcf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_sfcf${FH3}.nc" - fi fi + fi if [[ "${WRITE_DOPOST}" == ".true." ]]; then - ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.master.grb2f${FH3}" "${DATAoutput}/FV3ATM_OUTPUT/GFSPRS.GrbF${FH2}" - ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.sfluxgrbf${FH3}.grib2" "${DATAoutput}/FV3ATM_OUTPUT/GFSFLX.GrbF${FH2}" + ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.master.f${FH3}.grib2" "${DATAoutput}/FV3ATM_OUTPUT/GFSPRS.GrbF${FH2}" + ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.sflux.f${FH3}.grib2" "${DATAoutput}/FV3ATM_OUTPUT/GFSFLX.GrbF${FH2}" if [[ "${DO_NEST:-NO}" == "YES" ]]; then ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.master.nest.f${FH3}.grib2" "${DATAoutput}/FV3ATM_OUTPUT/GFSPRS.GrbF${FH2}.nest02" ${NLN} "${COMOUT_ATMOS_MASTER}/${RUN}.t${cyc}z.sflux.nest.f${FH3}.grib2" "${DATAoutput}/FV3ATM_OUTPUT/GFSFLX.GrbF${FH2}.nest02" diff --git a/ush/gaussian_sfcanl.sh b/ush/gaussian_sfcanl.sh index d62bc480fb2..18e8a53f38a 100755 --- a/ush/gaussian_sfcanl.sh +++ b/ush/gaussian_sfcanl.sh @@ -80,7 +80,7 @@ # # output data: $PGMOUT # $PGMERR -# $COMOUT/${APREFIX}sfcanl.nc +# $COMOUT/${APREFIX}analysis.sfc.a006.nc # # Remarks: # @@ -166,7 +166,7 @@ ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile6.nc" "./orog.tile6. ${NLN} "${SIGLEVEL}" "./vcoord.txt" # output gaussian global surface analysis files -${NLN} "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}sfcanl.nc" "./sfc.gaussian.analysis.file" +${NLN} "${COMOUT_ATMOS_ANALYSIS}/${APREFIX}analysis.sfc.a006.nc" "./sfc.gaussian.analysis.file" # Namelist uses booleans now if [[ ${DONST} == "YES" ]]; then do_nst='.true.'; else do_nst='.false.'; fi diff --git a/ush/getges.sh b/ush/getges.sh index 2d6d9dc622c..f7a6c95eaa0 100755 --- a/ush/getges.sh +++ b/ush/getges.sh @@ -300,7 +300,7 @@ if [[ "$netwk" = "gdas" ]];then $COMINgdas/gdas.t${cyc}z.atmf$gh.nemsio' ;; natgm3) geslist=' - $COMINgdas/gdas.t${cyc}z.atmf$ghm3.nemsio' + $COMINgdas/gdas.t${cyc}z.atm.f$ghm3.nemsio' ;; natgm2) geslist=' $COMINgdas/gdas.t${cyc}z.atmf$ghm2.nemsio' @@ -614,7 +614,7 @@ elif [[ "$netwk" = "gfs" ]];then fhinc=06 ;; natcur) geslist=' - $COMINgfs/gfs.t${cyc}z.atmf$gh.nemsio' + $COMINgfs/gfs.t${cyc}z.atm.f$gh.nemsio' getlist00=' $COMINgfs/gfs.t${cyc}z.atmanl.nemsio' fhbeg=00 @@ -1166,9 +1166,9 @@ elif [[ "$netwk" = "global" ]];then $COMINgfs/gfs.t${cyc}z.atmf$gh.nemsio' ;; natgm3) geslist=' - $GETGES_NWG/$envir/gdas.$day/gdas.t${cyc}z.atmf$ghm3.nemsio + $GETGES_NWG/$envir/gdas.$day/gdas.t${cyc}z.atm.f$ghm3.nemsio $COMINgdas/gdas.t${cyc}z.atmf$ghm3.nemsio - $GETGES_NWG/$envir/gfs.$day/gfs.t${cyc}z.atmf$ghm3.nemsio + $GETGES_NWG/$envir/gfs.$day/gfs.t${cyc}z.atm.f$ghm3.nemsio $COMINgfs/gfs.t${cyc}z.atmf$ghm3.nemsio' ;; natgm2) geslist=' diff --git a/ush/gfs_bufr.sh b/ush/gfs_bufr.sh index bfe72d770f1..63f94493b54 100755 --- a/ush/gfs_bufr.sh +++ b/ush/gfs_bufr.sh @@ -14,7 +14,7 @@ # Change to read flux file fields in gfs_bufr # so remove excution of gfs_flux # 2018-03-22 Guang Ping Lou: Making it works for either 1 hourly or 3 hourly output -# 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS +# 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS # 2018-05-30 Guang Ping Lou: Make sure all files are available. # 2019-10-10 Guang Ping Lou: Read in NetCDF files # 2024-03-03 Bo Cui: Add options to use different bufr table for different resolution NetCDF files @@ -45,12 +45,12 @@ else bufrflag=".false." fi -# check if read in bufr_ij_gfs_${CASE}.txt +# check if read in bufr_ij_gfs_${CASE}.txt export CASE=${CASE_HIST:-${CASE}} if [[ -s "${PARMgfs}/product/bufr_ij_gfs_${CASE}.txt" ]]; then - # use predetermined grid point(i,j) in bufr_gfs_${CASE}.txt + # use predetermined grid point(i,j) in bufr_gfs_${CASE}.txt ${NLN} "${PARMgfs}/product/bufr_ij_gfs_${CASE}.txt" fort.7 np1=0 else @@ -58,7 +58,7 @@ else np1=1 echo "No bufr_ij_gfs_${CASE}.txt For CASE ${CASE}" echo "Find the nearest neighbor grid (i,j) in the code" -fi +fi ##fformat="netcdf" @@ -71,30 +71,30 @@ cat << EOF > gfsparm nend1=${NEND1},nint1=${NINT1},nint3=${NINT3}, nsfc=80,f00=${f00flag},fformat=${fformat},np1=${np1}, fnsig="sigf${fhr}", - fngrib="flxf${fhr}", - fngrib2="flxf${fhr_p}" + fngrib="flxf${fhr}", + fngrib2="flxf${fhr_p}" / EOF #--------------------------------------------------------- # Make sure all files are available: -filename="${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.logf${fhr}.${logfm}" +filename="${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.log.f${fhr}.${logfm}" if [[ -z ${filename} ]]; then echo "FATAL ERROR: COULD NOT LOCATE logf${fhr} file" exit 2 fi -filename="${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.logf${fhr_p}.${logfm}" +filename="${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.log.f${fhr_p}.${logfm}" if [[ -z ${filename} ]]; then echo "FATAL ERROR: COULD NOT LOCATE logf${fhr_p} file" exit 2 fi #------------------------------------------------------------------ -${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atmf${fhr}.${atmfm}" "sigf${fhr}" -${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfcf${fhr}.${atmfm}" "flxf${fhr}" -${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfcf${fhr_p}.${atmfm}" "flxf${fhr_p}" +${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.f${fhr}.${atmfm}" "sigf${fhr}" +${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfc.f${fhr}.${atmfm}" "flxf${fhr}" +${NLN} "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfc.f${fhr_p}.${atmfm}" "flxf${fhr_p}" # define input BUFR table file. ${NLN} "${PARMgfs}/product/bufr_gfs_${CLASS}.tbl" fort.1 @@ -108,8 +108,8 @@ export err=$? if [[ ${err} -ne 0 ]]; then echo "WARNING GFS postsnd job error, Please check files " - echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atmf${fhr}.${atmfm}" - echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfcf${fhr}.${atmfm}" + echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.f${fhr}.${atmfm}" + echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfc.f${fhr}.${atmfm}" exit "${err}" fi diff --git a/ush/gfs_bufr_netcdf.sh b/ush/gfs_bufr_netcdf.sh index 48a438ceefa..9b905acbaa6 100755 --- a/ush/gfs_bufr_netcdf.sh +++ b/ush/gfs_bufr_netcdf.sh @@ -14,7 +14,7 @@ # Change to read flux file fields in gfs_bufr # so remove excution of gfs_flux # 2018-03-22 Guang Ping Lou: Making it works for either 1 hourly or 3 hourly output -# 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS +# 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS # 2018-05-30 Guang Ping Lou: Make sure all files are available. # 2019-10-10 Guang Ping Lou: Read in NetCDF files # echo "History: February 2003 - First implementation of this utility script" @@ -29,7 +29,7 @@ fi hh=$FSTART while test $hh -le $FEND -do +do hh=$( expr $hh + $FINT ) if test $hh -lt 10 then @@ -47,7 +47,6 @@ else bufrflag=".false." fi -SFCF="sfc" CLASS="class1fv3" cat << EOF > gfsparm &NAMMET @@ -67,9 +66,9 @@ hh=$FSTART fi sleep_interval=10 -max_tries=360 +max_tries=360 while test $hh -le $FEND -do +do if test $hh -lt 100 then hh2=0$hh @@ -83,15 +82,15 @@ do fi #------------------------------------------------------------------ - ${NLN} $COMIN/${RUN}.${cycle}.atmf${hh2}.nc sigf${hh} - ${NLN} $COMIN/${RUN}.${cycle}.${SFCF}f${hh2}.nc flxf${hh} + ${NLN} $COMIN/${RUN}.${cycle}.atm.f${hh2}.nc sigf${hh} + ${NLN} $COMIN/${RUN}.${cycle}.sfc.f${hh2}.nc flxf${hh} hh=$( expr $hh + $FINT ) if test $hh -lt 10 then hh=0$hh fi -done +done # define input BUFR table file. ${NLN} ${PARMgfs}/product/bufr_gfs_${CLASS}.tbl fort.1 diff --git a/ush/python/pygfs/task/fv3_analysis_calc.py b/ush/python/pygfs/task/fv3_analysis_calc.py index 5dc5000ed51..9c3350d7a1b 100644 --- a/ush/python/pygfs/task/fv3_analysis_calc.py +++ b/ush/python/pygfs/task/fv3_analysis_calc.py @@ -126,21 +126,21 @@ def execute(self) -> None: logger.info(f"Inserting analysis variables into atmospheric analysis file") insert_analysis_variables(self.task_config.current_cycle, f"atmanl.{auxgrid_time_str}.nc4", - f"{self.task_config.GPREFIX}atmf006.nc") + f"{self.task_config.GPREFIX}atm.f006.nc") # Aerosols if self.task_config.DO_AERO_ANL: logger.info(f"Inserting analysis variables into aerosol analysis file") insert_analysis_variables(self.task_config.current_cycle, f"aeroanl.{auxgrid_time_str}.nc4", - f"{self.task_config.GPREFIX}atmf006.nc") + f"{self.task_config.GPREFIX}atm.f006.nc") # Snow if self.task_config.DO_JEDISNOWDA: logger.info(f"Inserting analysis variables into snow analysis file") insert_analysis_variables(self.task_config.current_cycle, f"snowanl.{auxgrid_time_str}.nc4", - f"{self.task_config.GPREFIX}sfcf006.nc") + f"{self.task_config.GPREFIX}sfc.f006.nc") @logit(logger) def finalize(self) -> None: @@ -162,7 +162,7 @@ def finalize(self) -> None: # Write analysis log file formatted_date = datetime.now().strftime("%a %b %d %H:%M:%S %Z%Y") - log_file = os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.RUN}.t{self.task_config.cyc}z.loganl.txt") + log_file = os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.RUN}.t{self.task_config.cyc}z.done.txt") message = f"{self.task_config.rCDUMP} {self.task_config.PDY}{self.task_config.cyc} atmanl and sfcanl done at {formatted_date}" with open(log_file, "w") as file: file.write(f"{message}\n") diff --git a/ush/python/pygfs/task/offline_analysis.py b/ush/python/pygfs/task/offline_analysis.py index 90d6496ccc4..aa19bcdc705 100644 --- a/ush/python/pygfs/task/offline_analysis.py +++ b/ush/python/pygfs/task/offline_analysis.py @@ -79,11 +79,12 @@ def initialize(self) -> None: logger.info("Copy input files from $COM to $DATA") files_to_copy = [] fcst_file_in = os.path.join(self.task_config.COMIN_ATMOS_HISTORY_PREV, - f"{self.task_config.GPREFIX}atmf006.nc") + f"{self.task_config.GPREFIX}atm.f006.nc") files_to_copy.append([fcst_file_in, os.path.join(self.task_config.DATA, "atmges_mem001")]) + # TODO: Re-stage all of the inputs on HPSS to match EE2-compliant filenames anl_file_in = os.path.join(self.task_config.COMIN_ATMOS_ANALYSIS.replace('analysis', ''), f"{self.task_config.APREFIX_IN}atmanl.nc") files_to_copy.append([anl_file_in, os.path.join(self.task_config.DATA, "atmanl.input.nc")]) - # sfcanl_file_in = os.path.join(self.task_config.COMIN_ATMOS_ANALYSIS, f"{GPREFIX}sfcanl.nc") + # sfcanl_file_in = os.path.join(self.task_config.COMIN_ATMOS_ANALYSIS, f"{GPREFIX}analysis.sfc.a006.nc") # files_to_copy.append([sfcanl_file_in, os.path.join(self.task_config.DATA, "sfcanl.input.nc")]) FileHandler({'copy': files_to_copy}).sync() @@ -201,9 +202,9 @@ def finalize(self) -> None: """ output_files = [] output_files.append([os.path.join(self.task_config.DATA, 'atmanl_mem001'), - os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}atmanl.nc")]) + os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}analysis.atm.a006.nc")]) output_files.append([os.path.join(self.task_config.DATA, 'atminc_mem001'), - os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}atminc.nc")]) + os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}increment.atm.i006.nc")]) FileHandler({'copy': output_files}).sync() # these files are for the surface analysis transfer_files = [] @@ -213,6 +214,11 @@ def finalize(self) -> None: os.path.join(self.task_config.COMOUT_OBS, f"{self.task_config.APREFIX}seaice.5min.blend.grb")]) transfer_files.append([os.path.join(self.task_config.COMIN_OBSPROC, f"{self.task_config.APREFIX_IN}snogrb_t1534.3072.1536"), os.path.join(self.task_config.COMOUT_OBS, f"{self.task_config.APREFIX}snogrb_t1534.3072.1536")]) - transfer_files.append([os.path.join(self.task_config.COMIN_ATMOS_ANALYSIS.replace('analysis', ''), f"{self.task_config.APREFIX_IN}dtfanl.nc"), - os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}dtfanl.nc")]) + # TODO: Re-stage the inputs for the GCDAS offline analysis on HPSS following EE2-compliant filenames, then update this line + transfer_files.append([ + os.path.join(self.task_config.COMIN_ATMOS_ANALYSIS.replace('analysis', ''), + f"{self.task_config.APREFIX_IN}dtfanl.nc"), + os.path.join(self.task_config.COMOUT_ATMOS_ANALYSIS, + f"{self.task_config.APREFIX}analysis.dtf.a006.nc") + ]) FileHandler({'copy': transfer_files}).sync() diff --git a/ush/regrid_gsiSfcIncr_to_tile.sh b/ush/regrid_gsiSfcIncr_to_tile.sh index 891a46ad9f3..e450c9fa5c0 100755 --- a/ush/regrid_gsiSfcIncr_to_tile.sh +++ b/ush/regrid_gsiSfcIncr_to_tile.sh @@ -99,13 +99,13 @@ for imem in $(seq 1 "${NMEM_REGRID}"); do rm -f "regrid.nml" atparse < "${regrid_nml_tmpl}" >> "regrid.nml" - cpreq "${COMIN_SOIL_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \ + cpreq "${COMIN_SOIL_ANALYSIS_MEM}/${APREFIX_ENS}increment.sfc.i00${FHR}.nc" \ "${DATA}/enkfgdas.sfci00${FHR}.nc" ${APRUN_REGRID} "${REGRID_EXEC}" "${REDOUT}${PGMOUT}" "${REDERR}${PGMERR}" for n in $(seq 1 "${ntiles}"); do - cpfs "${DATA}/sfci.tile${n}.nc" "${COMOUT_ATMOS_ANALYSIS_MEM}/sfci00${FHR}.tile${n}.nc" + cpfs "${DATA}/sfci.tile${n}.nc" "${COMOUT_ATMOS_ANALYSIS_MEM}/increment.sfc.i00${FHR}.tile${n}.nc" done done @@ -118,7 +118,7 @@ for imem in $(seq 1 "${NMEM_REGRID}"); do atparse < "${regrid_nml_tmpl}" >> "regrid.nml" for FHI in "${landifhrs[@]}"; do - cpreq "${COMIN_SOIL_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHI}.nc" \ + cpreq "${COMIN_SOIL_ANALYSIS_MEM}/${APREFIX_ENS}increment.sfc.i00${FHI}.nc" \ "${DATA}/enkfgdas.sfci00${FHI}.nc" done @@ -130,7 +130,7 @@ for imem in $(seq 1 "${NMEM_REGRID}"); do fi for n in $(seq 1 "${ntiles}"); do - cpfs "${DATA}/sfci.tile${n}.nc" "${COMOUT_ATMOS_ANALYSIS_MEM}/sfc_inc.tile${n}.nc" + cpfs "${DATA}/sfci.tile${n}.nc" "${COMOUT_ATMOS_ANALYSIS_MEM}/increment.sfc.i006.tile${n}.nc" done fi diff --git a/versions/run.wcoss2.ver b/versions/run.wcoss2.ver index 025b9556f99..fd4db95025e 100644 --- a/versions/run.wcoss2.ver +++ b/versions/run.wcoss2.ver @@ -50,7 +50,7 @@ export metplus_ver=3.1.1 # Development-only below export obsproc_run_ver=1.2.0 -export prepobs_run_ver=1.1.2 +export prepobs_run_ver=1.1.3 -export ens_tracker_ver=v1.2.1 -export fit2obs_ver=1.1.9 +export ens_tracker_ver=v1.3.0 +export fit2obs_ver=1.1.10 diff --git a/versions/spack.ver b/versions/spack.ver index d763160bf5e..d737367eecd 100644 --- a/versions/spack.ver +++ b/versions/spack.ver @@ -46,7 +46,7 @@ export met_ver=11.1.1 export metplus_ver=5.1.0 export obsproc_run_ver=1.2.0 -export prepobs_run_ver=1.1.2 +export prepobs_run_ver=1.1.3 -export ens_tracker_ver=v1.2.1 -export fit2obs_ver=1.1.9 +export ens_tracker_ver=v1.3.0 +export fit2obs_ver=1.1.10