Skip to content

Commit

Permalink
clean up self-checks to make them maintainable
Browse files Browse the repository at this point in the history
  • Loading branch information
SamuelTrahanNOAA committed Jul 12, 2024
1 parent 904aa88 commit a9d88f9
Show file tree
Hide file tree
Showing 18 changed files with 201 additions and 100 deletions.
37 changes: 19 additions & 18 deletions tests/error-test.conf
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@


# FIXME: THIS FILE SHOULD NOT BE MERGED TO DEVELOP

# This file is an alternative to rt.conf that tests whether the regression test system rt.sh can detect failure conditions.
#
# ./rt.sh [options] -l error-test.conf
#
# If the rt.sh detects errors correctly, the workflow shouldn't finish. Some jobs should be failed or not submitted, and some should succeed.
# See details below.

# This should succeed
COMPILE | rrfs | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_RAP_sfcdiff,FV3_HRRR,FV3_RRFS_v1beta,FV3_RRFS_v1nssl -D32BIT=ON | | fv3 |
COMPILE | atm_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v17_p8,FV3_GFS_v17_p8_rrtmgp,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0,FV3_GFS_v17_p8_mynn,FV3_GFS_v17_p8_ugwpv1 -D32BIT=ON | | fv3 |

# This should succeed
RUN | rrfs_v1nssl_nohailnoccn | | baseline |
RUN | control_c48.v2.sfc | | baseline |

# These variants of rrfs_v1beta should always fail, and prevent the workflow from completing.
RUN | rrfs_v1beta_fail_to_copy | | baseline |
RUN | rrfs_v1beta_fail_to_run | | baseline |
# These tests should always fail, and prevent the workflow from completing.
RUN | fail_to_copy | | baseline |
RUN | fail_to_run | | baseline |

# Removing -DFASTER=ON here ensures results change, but the test runs. The workflow jobs should complete
# Using 64-bit dynamics ensures results change, but the test runs. The workflow jobs should complete
# for the COMPILE and RUN, but the results should change.
COMPILE | atm_faster_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8,FV3_GFS_v15_thompson_mynn_lam3km -D32BIT=ON | | fv3 |
RUN | regional_control_faster | | baseline |
COMPILE | atm_dyn64 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v17_p8,FV3_GFS_v17_p8_rrtmgp,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0,FV3_GFS_v17_p8_mynn,FV3_GFS_v17_p8_ugwpv1 | | fv3 |
RUN | control_c48 | | baseline |

# This compile job should fail, and prevent the workflow from completing.
COMPILE | fail_to_compile | intel | --invalid-argument -DAPP=ATM -DCCPP_SUITES=whatever | | fv3 |

# The --invalid-argument ensures the compile job will fail. The workflow should not submit the tests jobs for this compile job.
COMPILE | hafsw | intel | -DAPP=HAFSW --invalid-argument -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson_tedmf_gfdlsf,FV3_global_nest_v1 -D32BIT=ON | | fv3 |
RUN | hafs_regional_atm | | baseline |
RUN | hafs_regional_atm_thompson_gfdlsf | | baseline |
RUN | hafs_regional_atm_ocn | | baseline |
RUN | hafs_regional_atm_wav | | baseline |
# This test should not be submitted, because its compile job has failed.
RUN | dependency_unmet | | baseline |
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_qsub.IN_acorn
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export ESMF_RUNTIME_COMPLIANCECHECK=OFF:depth=4
export ESMF_RUNTIME_PROFILE=ON
export ESMF_RUNTIME_PROFILE_OUTPUT="SUMMARY"

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" = WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_qsub.IN_derecho
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export MPICH_COLL_OPT_OFF=1
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" = WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_qsub.IN_wcoss2
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export ESMF_RUNTIME_COMPLIANCECHECK=OFF:depth=4
export ESMF_RUNTIME_PROFILE=ON
export ESMF_RUNTIME_PROFILE_OUTPUT="SUMMARY"

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_expanse
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export OMP_STACK_SIZE=512M
export OMP_NUM_THREADS=@[THRD]
export I_MPI_PMI_LIBRARY=/cm/shared/apps/slurm/current/lib64/libpmi.so

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_gaea
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export ESMF_RUNTIME_PROFILE_OUTPUT="SUMMARY"
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_hera
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export PSM_SHAREDCONTEXTS=1
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_hercules
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ fi
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_jet
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export ESMF_RUNTIME_PROFILE_OUTPUT="SUMMARY"
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_noaacloud
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export OMP_NUM_THREADS=1
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_orion
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export ESMF_RUNTIME_PROFILE_OUTPUT="SUMMARY"
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" == WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_s4
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export PSM_SHAREDCONTEXTS=1
# Avoid job errors because of filesystem synchronization delays
sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" = WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_stampede
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export LD_BIND_NOW=1
# Avoid job errors because of filesystem synchronization delays
#sync && sleep 1

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf. It emulates the model failing to run.
if [ "${JOB_SHOULD_FAIL:-NO}" = WHEN_RUNNING ] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand Down
17 changes: 2 additions & 15 deletions tests/rt.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@


# FIXME: CHANGES TO THIS FILE SHOULD NOT BE MERGED TO DEVELOP


### RT.CONF FORMATTING ###
# COMPILE Line ( Items separated by a | )
# Item 1: COMPILE - This tells rt.conf the following information is to be used in setting up a compile job
Expand Down Expand Up @@ -152,10 +147,6 @@ RUN | rrfs_v1beta |
RUN | rrfs_v1nssl | | baseline |
RUN | rrfs_v1nssl_nohailnoccn | | baseline |

# These variants of rrfs_v1beta should always fail.
RUN | rrfs_v1beta_fail_to_copy | | baseline |
RUN | rrfs_v1beta_fail_to_run | | baseline |

COMPILE | csawmg | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16_csawmg,FV3_GFS_v16_ras | - noaacloud | fv3 |
RUN | control_csawmg | - noaacloud | baseline |
RUN | control_ras | - noaacloud | baseline |
Expand All @@ -167,9 +158,7 @@ RUN | control_csawmg | + hera hercules
COMPILE | wam | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON -DMULTI_GASES=ON | - noaacloud | fv3 |
RUN | control_wam | - noaacloud | baseline |

# Removing -DFASTER=ON here ensures results change, but the test runs. The workflow jobs should complete
# for all three of these tests, but the results should change.
COMPILE | atm_faster_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8,FV3_GFS_v15_thompson_mynn_lam3km -D32BIT=ON | | fv3 |
COMPILE | atm_faster_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8,FV3_GFS_v15_thompson_mynn_lam3km -D32BIT=ON -DFASTER=ON | | fv3 |
RUN | control_p8_faster | - noaacloud | baseline |
RUN | regional_control_faster | | baseline |

Expand Down Expand Up @@ -246,9 +235,7 @@ COMPILE | rrfs_dyn64_phy32_debug | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_H
RUN | rap_control_dyn64_phy32_debug | - noaacloud | baseline |

### HAFS tests ###

# The --invalid-argument ensures the compile job will fail. The workflow should not submit the tests jobs for this compile job.
COMPILE | hafsw | intel | -DAPP=HAFSW --invalid-argument -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson_tedmf_gfdlsf,FV3_global_nest_v1 -D32BIT=ON | | fv3 |
COMPILE | hafsw | intel | -DAPP=HAFSW -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson_tedmf_gfdlsf,FV3_global_nest_v1 -D32BIT=ON | | fv3 |
RUN | hafs_regional_atm | | baseline |
RUN | hafs_regional_atm_thompson_gfdlsf | | baseline |
RUN | hafs_regional_atm_ocn | | baseline |
Expand Down
11 changes: 2 additions & 9 deletions tests/run_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,8 @@ elif [[ ${SCHEDULER} = 'slurm' ]]; then
fi
fi

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
# This "if" block is part of the rt.sh self-tests in error-test.conf.
# It emulates run_test.sh not being able to populate the work directory.
if [[ "${JOB_SHOULD_FAIL:-NO}" == WHEN_COPYING ]] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
Expand All @@ -390,14 +391,6 @@ else
if [[ ${ROCOTO} = 'false' ]]; then
submit_and_wait job_card
else

# FIXME: THIS NEW "IF" BLOCK SHOULD NOT BE MERGED TO DEVELOP
if [[ "${JOB_SHOULD_FAIL:-NO}" == YES ]] ; then
echo "The job should abort now, with exit status 1." 1>&2
echo "If error checking is working, the metascheduler should mark the job as failed." 1>&2
false
fi

chmod u+x job_card
redirect_out_err ./job_card
fi
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,18 @@


# FIXME: THIS FILE SHOULD NOT BE MERGED TO DEVELOP


###############################################################################
#
# RRFS v1beta variant that always fails at runtime
# Regression test self-test: a job that is never submitted due to a failed dependency.
# This file was modified from control_c48.
#
###############################################################################

export TEST_DESCR="Variant of RRFS_v1beta that always fails at runtime"
export TEST_DESCR="This test should use a compile job that fails. Its purpose is to ensure the rt.sh workflow won't submit the dependent job."

export CNTL_DIR=rrfs_v1beta_fail_to_copy
export CNTL_DIR=control_c48

export LIST_FILES="sfcf000.nc \
sfcf009.nc \
sfcf012.nc \
sfcf024.nc \
atmf000.nc \
atmf009.nc \
atmf012.nc \
GFSFLX.GrbF00 \
GFSFLX.GrbF09 \
GFSFLX.GrbF12 \
GFSPRS.GrbF00 \
GFSPRS.GrbF09 \
GFSPRS.GrbF12 \
atmf024.nc \
RESTART/20210323.060000.coupler.res \
RESTART/20210323.060000.fv_core.res.nc \
RESTART/20210323.060000.fv_core.res.tile1.nc \
Expand Down Expand Up @@ -58,12 +46,40 @@ export LIST_FILES="sfcf000.nc \
RESTART/20210323.060000.sfc_data.tile5.nc \
RESTART/20210323.060000.sfc_data.tile6.nc"

export_rrfs_v1
export RESTART_INTERVAL="6 -1"
export OUTPUT_FH='0 09 12'
export_fv3
export_tiled

export INPES=1
export JNPES=1
export WRTTASK_PER_GROUP=2
export NPZ=127
export NPZP=128
export NPX=49
export NPY=49
export DT_ATMOS=1200
export SYEAR=2021
export SMONTH=03
export SDAY=22
export SHOUR=06
export RESTART_INTERVAL=0
export CDMBWD=${CDMBWD_c48}
export OUTPUT_GRID='gaussian_grid'
export NSTF_NAME='2,0,0,0,0'
export WRITE_DOPOST=.false.
export OUTPUT_FH="6 -1"
export IAER=5111
export IOVR=3
export IMO=192
export JMO=94

export FNSMCC_control="'global_soilmgldas.statsgo.t92.192.94.grb'"
export FNMSKH_control="'global_slmask.t62.192.94.grb'"
export FNSMCC=${FNSMCC_control}
export FNMSKH=${FNMSKH_control}

# A special flag that tells the job to fail at runtime.
export JOB_SHOULD_FAIL=WHEN_COPYING
export FV3_RUN=control_run.IN
export CCPP_SUITE=FV3_GFS_v17_p8
export INPUT_NML=global_control.nml.IN

if [[ " hera orion hercules jet " =~ " ${MACHINE_ID} " ]] ; then
ZSTANDARD_LEVEL=5
Expand Down
85 changes: 85 additions & 0 deletions tests/tests/fail_to_copy
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
###############################################################################
#
# Regression test self-test: a job that fails to copy inputs.
# This file was modified from control_c48.
#
###############################################################################

# A special flag that tells the job to fail at runtime before the job_card:
export JOB_SHOULD_FAIL=WHEN_COPYING

export TEST_DESCR="The rt.sh workflow shouldn't complete when this test is enabled because run_test.sh will abort before the job_card."

export CNTL_DIR=control_c48

export LIST_FILES="sfcf000.nc \
sfcf024.nc \
atmf000.nc \
atmf024.nc \
RESTART/20210323.060000.coupler.res \
RESTART/20210323.060000.fv_core.res.nc \
RESTART/20210323.060000.fv_core.res.tile1.nc \
RESTART/20210323.060000.fv_core.res.tile2.nc \
RESTART/20210323.060000.fv_core.res.tile3.nc \
RESTART/20210323.060000.fv_core.res.tile4.nc \
RESTART/20210323.060000.fv_core.res.tile5.nc \
RESTART/20210323.060000.fv_core.res.tile6.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile1.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile2.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile3.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile4.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile5.nc \
RESTART/20210323.060000.fv_srf_wnd.res.tile6.nc \
RESTART/20210323.060000.fv_tracer.res.tile1.nc \
RESTART/20210323.060000.fv_tracer.res.tile2.nc \
RESTART/20210323.060000.fv_tracer.res.tile3.nc \
RESTART/20210323.060000.fv_tracer.res.tile4.nc \
RESTART/20210323.060000.fv_tracer.res.tile5.nc \
RESTART/20210323.060000.fv_tracer.res.tile6.nc \
RESTART/20210323.060000.phy_data.tile1.nc \
RESTART/20210323.060000.phy_data.tile2.nc \
RESTART/20210323.060000.phy_data.tile3.nc \
RESTART/20210323.060000.phy_data.tile4.nc \
RESTART/20210323.060000.phy_data.tile5.nc \
RESTART/20210323.060000.phy_data.tile6.nc \
RESTART/20210323.060000.sfc_data.tile1.nc \
RESTART/20210323.060000.sfc_data.tile2.nc \
RESTART/20210323.060000.sfc_data.tile3.nc \
RESTART/20210323.060000.sfc_data.tile4.nc \
RESTART/20210323.060000.sfc_data.tile5.nc \
RESTART/20210323.060000.sfc_data.tile6.nc"

export_fv3
export_tiled

export INPES=1
export JNPES=1
export WRTTASK_PER_GROUP=2
export NPZ=127
export NPZP=128
export NPX=49
export NPY=49
export DT_ATMOS=1200
export SYEAR=2021
export SMONTH=03
export SDAY=22
export SHOUR=06
export RESTART_INTERVAL=0
export CDMBWD=${CDMBWD_c48}
export OUTPUT_GRID='gaussian_grid'
export NSTF_NAME='2,0,0,0,0'
export WRITE_DOPOST=.false.
export OUTPUT_FH="6 -1"
export IAER=5111
export IOVR=3
export IMO=192
export JMO=94

export FNSMCC_control="'global_soilmgldas.statsgo.t92.192.94.grb'"
export FNMSKH_control="'global_slmask.t62.192.94.grb'"
export FNSMCC=${FNSMCC_control}
export FNMSKH=${FNMSKH_control}

export FV3_RUN=control_run.IN
export CCPP_SUITE=FV3_GFS_v17_p8
export INPUT_NML=global_control.nml.IN
Loading

0 comments on commit a9d88f9

Please sign in to comment.