-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DO NOT MERGE] UW Demo for make_ics #6
base: production/AQM.v7
Are you sure you want to change the base?
Conversation
export subcyc='00' | ||
export SLASH_ENSMEM_SUBDIR='' | ||
export ENSMEM_INDX='##' | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pulling out all the SRW stuff that get's in the way -- these aren't needed for Production AQM and can serve as red-herrings when debugging.
This is the J-job script for the task that generates initial condition | ||
(IC), surface, and zeroth-hour lateral boundary condition (LBC0) files | ||
for the FV3 (in NetCDF format). | ||
========================================================================" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is all this logging helpful when set -x
is turned on?
# Set environment only when RUN_TASK_GET_EXTRN_ICS is false. | ||
#----------------------------------------------------------------------- | ||
# | ||
if [ "${RUN_TASK_GET_EXTRN_ICS}" = "FALSE" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this is still used in some cases, but it seems like it might be more straightforward just to have this script always handle this.
Again, this is removed for demo purposes only.
# | ||
export KMP_AFFINITY=${KMP_AFFINITY_MAKE_ICS} | ||
export OMP_NUM_THREADS=${OMP_NUM_THREADS_MAKE_ICS} | ||
export OMP_STACKSIZE=${OMP_STACKSIZE_MAKE_ICS} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Run time environment is handled by the UW Driver, and isolated from any workflow environment present in the run-script.
That means there will be no collisions between Python workflow environment and component run-time environment.
" | ||
err_exit "${message_txt}" | ||
fi | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The configuration file already contains information about where to get initial conditions, and whether to copy or link them. No additional logic is necessary here.
err_exit "${message_txt}" | ||
;; | ||
# | ||
esac |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The appropriate values from this case statement and the next one will already be defined in the experiment configuration YAML because we know enough information at configuration time to pre-determine (harden) this for run-time.
# forecast task. | ||
# | ||
startmsg | ||
eval ${RUN_CMD_UTILS} ${exec_fp} ${REDIRECT_OUT_ERR} >> $pgmout 2>errfile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The UW Driver YAML for chgres_cube.py now handles all of the information needed to define the component run environment, input files (data and configuration), and component execution.
|
||
mv gfs.bndy.nc ${INPUT_DATA}/${NET}.${cycle}${dot_ensmem}.gfs_bndy.tile${TILE_RGNL}.f000.nc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why use SRW-defined variables when it's more straightforward to us the NCO-standard ones?
Also, tile7
and halo0
aren't actually configurable in Production AQM now. Why use variables for them?
$SRWrun/chgres_cube.py \ | ||
-c &GLOBAL_VAR_DEFNS_FP; \ | ||
--cycle @Y-@m-@dT@H:@M:@S \ | ||
--key-path task_make_ics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TDB: Link to this script.
DESCRIPTION OF CHANGES:
This PR shows the diffs to the AQM Production branch using refactored, UW-enabled SRW and UW Tools.
The code is untested and for demo purposes only.