Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into feature/stage_coldatm_warmocnice
Browse files Browse the repository at this point in the history
  • Loading branch information
KateFriedman-NOAA authored Oct 1, 2024
2 parents 2245e8b + 8f0541c commit 20fa8f5
Show file tree
Hide file tree
Showing 27 changed files with 138 additions and 128 deletions.
2 changes: 1 addition & 1 deletion ci/cases/pr/C96C48_ufs_hybatmDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ arguments:
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96C48/20240610
idate: 2024022318
edate: 2024022400
edate: 2024022406
nens: 2
gfs_cyc: 1
start: warm
Expand Down
2 changes: 1 addition & 1 deletion docs/note_fixfield.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ They are saved locally on all platforms

Hera: /scratch1/NCEPDEV/global/glopara/fix
Orion/Hercules: /work/noaa/global/glopara/fix
Jet: /mnt/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix
Jet: /mnt/lfs5/HFIP/hfv3gfs/glopara/FIX/fix
S4: /data/prod/glopara/fix

------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/source/components.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Observation data, also known as dump data, is prepared in production and then ar

* Hera: ``/scratch1/NCEPDEV/global/glopara/dump``
* Orion/Hercules: ``/work/noaa/rstprod/dump``
* Jet: ``/mnt/lfs4/HFIP/hfv3gfs/glopara/dump``
* Jet: ``/mnt/lfs5/HFIP/hfv3gfs/glopara/dump``
* WCOSS2: ``/lfs/h2/emc/global/noscrub/emc.global/dump``
* S4: ``/data/prod/glopara/dump``

Expand Down
4 changes: 2 additions & 2 deletions docs/source/init.rst
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Warm-start cycled w/ coupled (S2S) model C48 atmosphere C48 enkf (80 members) 5
Hera: /scratch1/NCEPDEV/global/glopara/data/ICSDIR/C48C48mx500
Orion/Hercules: /work/noaa/global/glopara/data/ICSDIR/C48C48mx500
WCOSS2: /lfs/h2/emc/global/noscrub/emc.global/data/ICSDIR/C48C48mx500
Jet: /lfs4/HFIP/hfv3gfs/glopara/data/ICSDIR/C48C48mx500
Jet: /lfs5/HFIP/hfv3gfs/glopara/data/ICSDIR/C48C48mx500
AWS: https://noaa-nws-global-pds.s3.amazonaws.com/index.html#data/ICSDIR/C48C48mx500

Start date = 2021032312
Expand Down Expand Up @@ -227,7 +227,7 @@ Forecast-only P8 prototype initial conditions are made available to users on sup
WCOSS2: /lfs/h2/emc/global/noscrub/emc.global/IC/COUPLED
HERA: /scratch1/NCEPDEV/climate/role.ufscpara/IC
ORION/Hercules: /work/noaa/global/glopara/data/ICSDIR/prototype_ICs
JET: /mnt/lfs4/HFIP/hfv3gfs/glopara/data/ICSDIR/prototype_ICs
JET: /mnt/lfs5/HFIP/hfv3gfs/glopara/data/ICSDIR/prototype_ICs
S4: /data/prod/glopara/coupled_ICs

These locations are known within the workflow via paths set in ``parm/config/config.coupled_ic``.
Expand Down
2 changes: 1 addition & 1 deletion env/ORION.env
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ elif [[ "${step}" = "marineanlchkpt" ]]; then

export NTHREADS_OCNANAL=${NTHREADSmax}

export APRUN_MARINEANLCHKPT="${APRUN} --cpus-per-task=${NTHREADS_OCNANAL}"
export APRUN_MARINEANLCHKPT="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANAL}"

elif [[ "${step}" = "ocnanalecen" ]]; then

Expand Down
2 changes: 1 addition & 1 deletion modulefiles/module_base.jet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))
prepend_path("MODULEPATH", pathJoin("/lfs5/HFIP/hfv3gfs/glopara/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
load(pathJoin("prepobs", (os.getenv("prepobs_run_ver") or "None")))

prepend_path("MODULEPATH", pathJoin("/lfs4/HFIP/hfv3gfs/glopara/git/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles"))
prepend_path("MODULEPATH", pathJoin("/lfs5/HFIP/hfv3gfs/glopara/git/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles"))
load(pathJoin("fit2obs", (os.getenv("fit2obs_ver") or "None")))

whatis("Description: GFS run environment")
2 changes: 1 addition & 1 deletion modulefiles/module_gwsetup.jet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Load environment to run GFS workflow setup scripts on Jet

load(pathJoin("rocoto"))

prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev-rocky8/install/modulefiles/Core")
prepend_path("MODULEPATH", "/contrib/spack-stack/spack-stack-1.6.0/envs/gsi-addon-intel/install/modulefiles/Core")

local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
local python_ver=os.getenv("python_ver") or "3.11.6"
Expand Down
2 changes: 2 additions & 0 deletions parm/archive/gdas_restarta.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ gdas_restarta:
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}abias_int"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}dtfanl.nc"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}loginc.txt"
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}rad_varbc_params.tar"
{% endif %}

# Snow surface data
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gfs/config.aero
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ case ${machine} in
AERO_INPUTS_DIR="/gpfs/f5/epic/proj-shared/global/glopara/data/gocart_emissions"
;;
"JET")
AERO_INPUTS_DIR="/lfs4/HFIP/hfv3gfs/glopara/data/gocart_emissions"
AERO_INPUTS_DIR="/lfs5/HFIP/hfv3gfs/glopara/data/gocart_emissions"
;;
*)
echo "FATAL ERROR: Machine ${machine} unsupported for aerosols"
Expand Down
10 changes: 10 additions & 0 deletions parm/config/gfs/config.resources.ORION
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ case ${step} in
# Remove this block once the GSI issue is resolved.
export walltime="00:45:00"
;;
"atmanlvar")
# Run on 8 nodes for memory requirement
export tasks_per_node=8
export walltime="00:45:00"
;;
"atmensanlobs")
# Run on 8 nodes for memory requirement
export tasks_per_node=8
export walltime="00:45:00"
;;
*)
;;
esac
9 changes: 1 addition & 8 deletions parm/stage/analysis.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,10 @@ 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] %}
{% for ftype in ["abias", "abias_air", "abias_int", "abias_pc", "atminc.nc", "atmi009.nc", "atmi003.nc", "radstat", "ratminc.nc", "ratmi009.nc", "ratmi003.nc"] %}
{% 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 }}"]
{% endif %}
{% endfor %}
{% if DO_JEDIATMVAR %}
{% for ftype in ["satbias.nc", "satbias_cov.nc", "tlapse.txt"] %}
{% for file in glob(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z.atms_*." ~ ftype) %}
- ["{{ file }}", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"]
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %} # mem loop
{% endif %}
2 changes: 1 addition & 1 deletion sorc/gfs_utils.fd
2 changes: 1 addition & 1 deletion sorc/gsi_monitor.fd
2 changes: 1 addition & 1 deletion sorc/link_workflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ case "${machine}" in
"hera") FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix" ;;
"orion") FIX_DIR="/work/noaa/global/glopara/fix" ;;
"hercules") FIX_DIR="/work/noaa/global/glopara/fix" ;;
"jet") FIX_DIR="/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix" ;;
"jet") FIX_DIR="/lfs5/HFIP/hfv3gfs/glopara/FIX/fix" ;;
"s4") FIX_DIR="/data/prod/glopara/fix" ;;
"gaea") FIX_DIR="/gpfs/f5/ufs-ard/world-shared/global/glopara/data/fix" ;;
"noaacloud") FIX_DIR="/contrib/global-workflow-shared-data/fix" ;;
Expand Down
2 changes: 1 addition & 1 deletion sorc/ufs_model.fd
Submodule ufs_model.fd updated 73 files
+1 −1 CDEPS-interface/CDEPS
+0 −3 CDEPS-interface/cdeps_files.cmake
+1 −1 CMEPS-interface/CMEPS
+1 −1 FV3
+1 −1 MOM6-interface/MOM6
+5 −12 build.sh
+1 −1 tests/bl_date.conf
+8 −10 tests/ci/Jenkinsfile.combined
+2 −8 tests/compile.sh
+5 −4 tests/default_vars.sh
+3 −0 tests/error-test.conf
+2 −4 tests/fv3_conf/cpld_docn_dice.IN
+31 −31 tests/logs/OpnReqTests_control_p8_hera.log
+87 −79 tests/logs/OpnReqTests_cpld_control_nowave_noaero_p8_hera.log
+15 −15 tests/logs/OpnReqTests_regional_control_hera.log
+263 −340 tests/logs/RegressionTests_acorn.log
+278 −278 tests/logs/RegressionTests_derecho.log
+278 −278 tests/logs/RegressionTests_gaea.log
+367 −422 tests/logs/RegressionTests_hera.log
+371 −372 tests/logs/RegressionTests_hercules.log
+247 −247 tests/logs/RegressionTests_jet.log
+277 −277 tests/logs/RegressionTests_orion.log
+256 −254 tests/logs/RegressionTests_wcoss2.log
+1 −0 tests/parm/control.nml.IN
+1 −0 tests/parm/control_ca.nml.IN
+1 −0 tests/parm/control_csawmg.nml.IN
+1 −0 tests/parm/control_flake.nml.IN
+1 −1 tests/parm/control_gdas.nml.IN
+1 −0 tests/parm/control_gfsv17.nml.IN
+1 −0 tests/parm/control_noahmp.nml.IN
+1 −0 tests/parm/csawmg3shoc127.nml.IN
+1 −0 tests/parm/csawmgshoc.nml.IN
+1 −1 tests/parm/datm.streams.IN
+1 −0 tests/parm/global_control.nml.IN
+1 −0 tests/parm/input_global_hafs.nml.IN
+1 −0 tests/parm/input_global_nest.nml.IN
+1 −0 tests/parm/input_global_parent.nml.IN
+1 −0 tests/parm/input_nest02.nml.IN
+1 −0 tests/parm/input_nest_hafs.nml.IN
+1 −0 tests/parm/input_regional_hafs.nml.IN
+1 −0 tests/parm/rap.nml.IN
+1 −0 tests/parm/regional.nml.IN
+1 −0 tests/parm/regional_atmaq.nml.IN
+1 −0 tests/parm/regional_rrfs_a.nml.IN
+1 −0 tests/parm/regional_wofs.nml.IN
+1 −0 tests/parm/rrfs_conus13km_hrrr.nml.IN
+14 −4 tests/parm/ufs.configure.s2s_esmf.IN
+1 −0 tests/parm/wam_v17.nml.IN
+0 −5 tests/rt.conf
+1 −0 tests/rt.sh
+40 −161 tests/rt_utils.sh
+10 −1 tests/run_compile.sh
+128 −16 tests/run_test.sh
+1 −116 tests/test_changes.list
+4 −0 tests/tests/control_c48.v2.sfc_timeout
+2 −2 tests/tests/datm_cdeps_3072x1536_cfsr
+1 −1 tests/tests/datm_cdeps_bulk_cfsr
+3 −3 tests/tests/datm_cdeps_bulk_gefs
+1 −1 tests/tests/datm_cdeps_ciceC_cfsr
+1 −1 tests/tests/datm_cdeps_control_cfsr
+1 −1 tests/tests/datm_cdeps_control_cfsr_faster
+3 −3 tests/tests/datm_cdeps_control_gefs
+1 −1 tests/tests/datm_cdeps_debug_cfsr
+3 −3 tests/tests/datm_cdeps_gfs
+3 −3 tests/tests/datm_cdeps_iau_gefs
+1 −1 tests/tests/datm_cdeps_multiple_files_cfsr
+1 −1 tests/tests/datm_cdeps_mx025_cfsr
+3 −3 tests/tests/datm_cdeps_mx025_gefs
+1 −1 tests/tests/datm_cdeps_restart_cfsr
+3 −3 tests/tests/datm_cdeps_stochy_gefs
+0 −45 tests/tests/regional_ifi_2threads
+0 −45 tests/tests/regional_ifi_control
+0 −45 tests/tests/regional_ifi_decomp
2 changes: 1 addition & 1 deletion sorc/ufs_utils.fd
Submodule ufs_utils.fd updated 35 files
+2 −2 driver_scripts/driver_grid.jet.sh
+2 −2 fix/link_fixdirs.sh
+5 −14 modulefiles/build.hera.gnu.lua
+1 −1 modulefiles/build.jet.intel.lua
+13 −11 modulefiles/build.wcoss2.intel.lua
+2 −0 reg_tests/chgres_cube/13km.conus.nam.grib2.sh
+2 −0 reg_tests/chgres_cube/13km.conus.rap.grib2.sh
+2 −0 reg_tests/chgres_cube/13km.na.gfs.ncei.grib2.sh
+2 −0 reg_tests/chgres_cube/25km.conus.gfs.grib2.sh
+2 −0 reg_tests/chgres_cube/25km.conus.gfs.pbgrib2.sh
+2 −0 reg_tests/chgres_cube/3km.conus.hrrr.gfssdf.grib2.sh
+2 −0 reg_tests/chgres_cube/3km.conus.hrrr.newsfc.grib2.sh
+2 −2 reg_tests/chgres_cube/driver.jet.sh
+4 −3 reg_tests/chgres_cube/driver.wcoss2.sh
+15 −21 reg_tests/cpld_gridgen/RegressionTests_jet.intel.log
+1 −1 reg_tests/cpld_gridgen/parm/grid.nml.IN
+8 −4 reg_tests/cpld_gridgen/rt.sh
+2 −2 reg_tests/global_cycle/driver.jet.sh
+2 −2 reg_tests/global_cycle/driver.wcoss2.sh
+2 −2 reg_tests/grid_gen/driver.jet.sh
+1 −1 reg_tests/grid_gen/driver.orion.sh
+2 −2 reg_tests/grid_gen/driver.wcoss2.sh
+5 −5 reg_tests/ice_blend/driver.jet.sh
+11 −11 reg_tests/ocnice_prep/RegressionTests_jet.intel.log
+9 −5 reg_tests/ocnice_prep/rt.sh
+2 −2 reg_tests/snow2mdl/driver.jet.sh
+2 −2 reg_tests/weight_gen/driver.jet.sh
+2 −2 reg_tests/weight_gen/driver.wcoss2.sh
+1 −1 sorc/chgres_cube.fd/program_setup.F90
+2 −0 sorc/fre-nctools.fd/shared_lib/mosaic_util.h
+18 −2 sorc/global_cycle.fd/cycle.f90
+1 −1 sorc/machine-setup.sh
+1 −1 ush/global_cycle.sh
+2 −2 util/gdas_init/set_fixed_files.sh
+1 −1 util/weight_gen/run.jet.sh
2 changes: 1 addition & 1 deletion ush/detect_machine.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ if [[ -d /lfs/h3 ]]; then
elif [[ -d /lfs/h1 && ! -d /lfs/h3 ]]; then
# We are on NOAA TDS Acorn
MACHINE_ID=acorn
elif [[ -d /mnt/lfs1 ]]; then
elif [[ -d /mnt/lfs5 ]]; then
# We are on NOAA Jet
MACHINE_ID=jet
elif [[ -d /scratch1 ]]; then
Expand Down
1 change: 0 additions & 1 deletion ush/forecast_predet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,6 @@ FV3_predet(){
${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt"
fi
fi

}

# Disable variable not used warnings
Expand Down
56 changes: 46 additions & 10 deletions ush/python/pygfs/jedi/jedi.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
#!/usr/bin/env python3

import os
import tarfile
from logging import getLogger
from typing import List, Dict, Any, Optional
from jcb import render
from wxflow import (AttrDict,
FileHandler,
chdir, rm_p,
parse_j2yaml,
logit,
Expand Down Expand Up @@ -188,19 +190,19 @@ def get_obs_dict(self, task_config: AttrDict) -> Dict[str, Any]:
return obs_dict

@logit(logger)
def get_bias_dict(self, task_config: AttrDict) -> Dict[str, Any]:
def get_bias_dict(self, task_config: AttrDict, bias_file) -> Dict[str, Any]:
"""Compile a dictionary of observation files to copy
This method extracts 'observers' from the JEDI yaml and from that list, extracts a list of
observation bias correction files that are to be copied to the run directory
This method extracts 'observers' from the JEDI yaml and determines from that list
if bias correction tar files are to be copied to the run directory
from the component directory.
TODO: COM_ATMOS_ANALYSIS_PREV is hardwired here and this method is not appropriate in
`analysis.py` and should be implemented in the component where this is applicable.
Parameters
----------
task_config: AttrDict
Attribute-dictionary of all configuration variables associated with a GDAS task.
bias_file
name of bias correction tar file
Returns
----------
Expand All @@ -216,18 +218,52 @@ def get_bias_dict(self, task_config: AttrDict) -> Dict[str, Any]:
obfile = ob['obs bias']['input file']
obdir = os.path.dirname(obfile)
basename = os.path.basename(obfile)
prefix = '.'.join(basename.split('.')[:-2])
for file in ['satbias.nc', 'satbias_cov.nc', 'tlapse.txt']:
bfile = f"{prefix}.{file}"
copylist.append([os.path.join(task_config.COM_ATMOS_ANALYSIS_PREV, bfile), os.path.join(obdir, bfile)])
# TODO: Why is this specific to ATMOS?
prefix = '.'.join(basename.split('.')[:-3])
bfile = f"{prefix}.{bias_file}"
tar_file = os.path.join(obdir, bfile)
copylist.append([os.path.join(task_config.VarBcDir, bfile), tar_file])
break

bias_dict = {
'mkdir': [os.path.join(task_config.DATA, 'bc')],
'copy': copylist
}

return bias_dict

@staticmethod
@logit(logger)
def extract_tar(tar_file: str) -> None:
"""Extract files from a tarball
This method extract files from a tarball
Parameters
----------
tar_file
path/name of tarball
Returns
----------
None
"""

# extract files from tar file
tar_path = os.path.dirname(tar_file)
try:
with tarfile.open(tar_file, "r") as tarball:
tarball.extractall(path=tar_path)
logger.info(f"Extract {tarball.getnames()}")
except tarfile.ReadError as err:
if tarfile.is_tarfile(tar_file):
logger.error(f"FATAL ERROR: {tar_file} could not be read")
raise tarfile.ReadError(f"FATAL ERROR: unable to read {tar_file}")
else:
logger.info()
except tarfile.ExtractError as err:
logger.exception(f"FATAL ERROR: unable to extract from {tar_file}")
raise tarfile.ExtractError("FATAL ERROR: unable to extract from {tar_file}")


@logit(logger)
def find_value_in_nested_dict(nested_dict: Dict, target_key: str) -> Any:
Expand Down
45 changes: 0 additions & 45 deletions ush/python/pygfs/task/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@ def initialize(self) -> None:
obs_dict = self.get_obs_dict()
FileHandler(obs_dict).sync()

# some analyses need to stage bias corrections
bias_dict = self.get_bias_dict()
FileHandler(bias_dict).sync()

# link jedi executable to run directory
self.link_jediexe()

Expand Down Expand Up @@ -127,47 +123,6 @@ def get_obs_dict(self) -> Dict[str, Any]:
}
return obs_dict

@logit(logger)
def get_bias_dict(self) -> Dict[str, Any]:
"""Compile a dictionary of observation files to copy
This method extracts 'observers' from the JEDI yaml and from that list, extracts a list of
observation bias correction files that are to be copied to the run directory
from the component directory.
TODO: COM_ATMOS_ANALYSIS_PREV is hardwired here and this method is not appropriate in
`analysis.py` and should be implemented in the component where this is applicable.
Parameters
----------
Returns
----------
bias_dict: Dict
a dictionary containing the list of observation bias files to copy for FileHandler
"""

logger.info(f"Extracting a list of bias correction files from Jedi config file")
observations = find_value_in_nested_dict(self.task_config.jedi_config, 'observations')
logger.debug(f"observations:\n{pformat(observations)}")

copylist = []
for ob in observations['observers']:
if 'obs bias' in ob.keys():
obfile = ob['obs bias']['input file']
obdir = os.path.dirname(obfile)
basename = os.path.basename(obfile)
prefix = '.'.join(basename.split('.')[:-2])
for file in ['satbias.nc', 'satbias_cov.nc', 'tlapse.txt']:
bfile = f"{prefix}.{file}"
copylist.append([os.path.join(self.task_config.COM_ATMOS_ANALYSIS_PREV, bfile), os.path.join(obdir, bfile)])
# TODO: Why is this specific to ATMOS?

bias_dict = {
'mkdir': [os.path.join(self.task_config.DATA, 'bc')],
'copy': copylist
}
return bias_dict

@logit(logger)
def add_fv3_increments(self, inc_file_tmpl: str, bkg_file_tmpl: str, incvars: List) -> None:
"""Add cubed-sphere increments to cubed-sphere backgrounds
Expand Down
Loading

0 comments on commit 20fa8f5

Please sign in to comment.